安全地帯からの横レスで申し訳ないんだけど、
クイックソートのアルゴリズムがちょっと良くわからないっていうなら、
今更感が強いけどちょっと聞いていきなよ。

―クイックソートの大体の考え方―
クイックソートはまず、ある数の集合Aの中から一つの数aを任意に選んで、Aをa以下の数の集合sAと、a以上の数の集合lAに分けるのさ(sはsmall、lはlarge)。
すると、sAに含まれる数ってのは、全てa以下なわけで、lAに含まれる数っていうのは、全てa以上なわけだね。簡単に書いてみると

(1)sA <= a <= lA

っていう関係になるんだ。ここで、sAに対して、Aの時と同じ操作をすると…

(2)ssA <= a' <= lsA (a'はsAに含まれる任意の数)

っていう関係になるよね。(1)と(2)をあわせると、

ssA <= a' <= lsA <= a <= lA

って言う風になるよね。
あとは、出現する集合が全て値を一つしか持たなくなるまで、同じ手順を繰り返すだけ。
以上、クイックソートの大体の考え方でした。