Why to use Gram-Schmidt process to orthonormalise a basis instead of cross product? I just had one semester in analytic geometry and another in linear algebra. I learned about the Gram–Schmidt process but I am unsure why It is actually needed. In analytic geometry, I learned about the cross product and let's suppose I need to orthonormalize a basis in 3-dimensions, I'd think first about doing the following:


*

*Take two vectors in the basis $\{\overline{a},\overline{b},\overline{c} \}$, calculate $\overline{a}\times \overline{b}$ and then multiply it by $\cfrac{1}{|\overline{a}\times \overline{b}|}$.

*Now I have a new vector which is normalized and perpendicular to both $\overline{a}$ and $\overline{b}$. Take one of those, say $\overline{a}$ and multiply it by $\cfrac{1}{|\overline{a}|}$. This makes our new vector for our new orthonormalized basis. 

*Now we need a third vector which is perpendicular to both of these and that is easy, It's just: $\cfrac{\cfrac{\overline{a}}{|\overline{a}|}\times \cfrac{\overline{a}\times \overline{b}}{|\overline{a}\times \overline{b}|}}{\left|\cfrac{\overline{a}}{|\overline{a}|}\times \cfrac{\overline{a}\times \overline{b}}{|\overline{a}\times \overline{b}|}\right|}$

*Our orthonormalized basis is: $\left[\cfrac{a}{|a|}, \cfrac{\overline{a}\times \overline{b}}{|\overline{a}\times \overline{b}|}, \cfrac{\cfrac{\overline{a}}{|\overline{a}|}\times \cfrac{\overline{a}\times \overline{b}}{|\overline{a}\times \overline{b}|}}{\left|\cfrac{\overline{a}}{|\overline{a}|}\times \cfrac{\overline{a}\times \overline{b}}{|\overline{a}\times \overline{b}|}\right|}\right]$.
Just using the property that $u\times v$ is perpendicular to both $u,v$. But now, in my linear algebra lectures, they taught us the Gram-Schmidt process. Why do I need this new process instead of just do what I did above? Perhaps they are the same thing, but until the present moment, I failed to notice their sameness.
 A: In the comments you mention that you are interested in the case of three vectors in $\mathbf{R}^3$, with the usual Euclidean norm.  I think you are implicitly assuming that the three vectors span $\mathbf{R}^3$.  But then why bother orthonormalizing at all?  We already have a standard orthonormal basis for $\mathbf{R}^3$.
A more typical use of the Gram-Schmidt process is when you have $k$ vectors that span a proper subspace of $\mathbf{R}^n$, and you want to find an orthonormal basis for that subspace.  In that situation, you don't have a standard basis, so you have to construct your own.  As pointed out in the comment of littleO and the answer of Victor Vela, Gram-Schmidt gives an orthonormal basis whose first $j$ vectors span the same subspace as the first $j$ vectors of the original set.
Assuming you really did want to produce an orthonormal basis from three vectors in $\mathbf{R}^3$, your procedure is the same as Gram-Schmidt, up to a certain point in the process.  Write your basis as
$$
\left[\cfrac{\overline{a}}{|\overline{a}|}, \cfrac{\cfrac{\overline{a}\times \overline{b}}{|\overline{a}\times \overline{b}|}\times\cfrac{\overline{a}}{|\overline{a}|}}{\left|\cfrac{\overline{a}\times \overline{b}}{|\overline{a}\times \overline{b}|}\times\cfrac{\overline{a}}{|\overline{a}|}\right|}, \cfrac{\overline{a}\times \overline{b}}{|\overline{a}\times \overline{b}|}\right].
$$
I have swapped your second and third basis vectors, and have reordered the factors in one of your cross products (which only changes the result by a sign).  You can check that $(\overline{a}\times \overline{b})\times\overline{c}=(\overline{c}\cdot \overline{a})\overline{b}-(\overline{c}\cdot \overline{b})\overline{a}$.  We may therefore rewrite the second basis vector as follows:
$$
\cfrac{\cfrac{\overline{a}\times \overline{b}}{|\overline{a}\times \overline{b}|}\times\cfrac{\overline{a}}{|\overline{a}|}}{\left|\cfrac{\overline{a}\times \overline{b}}{|\overline{a}\times \overline{b}|}\times\cfrac{\overline{a}}{|\overline{a}|}\right|}=\cfrac{(\overline{a}\times \overline{b})\times\overline{a}}{\lvert(\overline{a}\times \overline{b})\times\overline{a}\rvert}=\cfrac{\lvert\overline{a}\rvert^2\overline{b}-(\overline{a}\cdot\overline{b})\overline{a}}{\left\lvert\lvert\overline{a}\rvert^2\overline{b}-(\overline{a}\cdot\overline{b})\overline{a}\right\rvert}=\cfrac{\overline{b}-\left(\cfrac{\overline{a}}{\lvert\overline{a}\rvert}\cdot\overline{b}\right)\cfrac{\overline{a}}{\lvert\overline{a}\rvert}}{\left\lvert\overline{b}-\left(\cfrac{\overline{a}}{\lvert\overline{a}\rvert}\cdot\overline{b}\right)\cfrac{\overline{a}}{\lvert\overline{a}\rvert}\right\rvert}.
$$
This is exactly what Gram-Schmidt gives.
Some things to note: the numerator might be the zero vector (if $\overline{b}$ is a scalar multiple of $\overline{a}$), in which case we should omit the denominator.  In this situation, we get a proper subspace of $\mathbf{R}^3$, rather than all of $\mathbf{R}^3$.  Similarly, if $\overline{c}$ lies in the span of $\overline{a}$ and $\overline{b}$, then the third vector that Gram-Schmidt gives will end up being zero. If, on the other hand, $\overline{a}$, $\overline{b}$, and $\overline{c}$ span $\mathbf{R}^3$, the result of your procedure (as modified above) and Gram-Schmidt will be the same (except possibly for the sign of the third vector).  The process by which this third vector is obtained is different, however.  Your procedure doesn't even use $\overline{c}$, whereas Gram-Schmidt does.
