An active set algorithm is introduced for positive definite and positive semi definite linear complementarity problems. The proposed algorithm is composed of two phases. Phase 1, the feasibility phase and phase 2, the optimality phase. In phase 1, the ellipsoid method is employed to test for feasibility and provide an advanced starting point if the problem is feasible. Providing such a warm start permits a good estimate of the active set. In phase 2, a criterion based on the complementarity condition is used to detect the working set per iteration until optimality is reached. This criterion leads to a valuable reduction in the size of the problem solved per iteration to obtain a search direction. Numerical examples are solved to illustrate the performance of the algorithm and a practical example in rigid body dynamics is solved to demonstrate the usage of the algorithm to solve such problems.