もう一つ質問なのですが、
最初自分でクイックソートを書いたのですが、うまくソートされませんでした。

ソースを見て紙に一つずつ書きながらやってみると、確かにうまく出来なさそうな気がするのですが
いまいちぱっとしません。

もしよろしければ、修正ポイントなど教えていただけないでしょうか。
--------
#include<stdlib.h> #include<stdio.h> #define SIZE 10
int S[SIZE];
void quick(int S[],int from,int to) {
int i,j,k,l,pivot;
if(from<to) { pivot=from; i=from+1; j=to;
if(i!=j) { while(i<j) {
if(S[i]>S[pivot]) {
while(S[j]>S[pivot]) { j--; }
if(S[j]<S[pivot]) {
swap (&S[i],&S[j]);
j--; i++; }
else { i--; } }
else{ i++; } }
swap (&S[i],&S[pivot]); }
else { if(S[pivot]>S[i]) {
swap (&S[i],&S[pivot]); } }
quick(S,from,i-1); quick(S,j+1,to); } }
---------
mainとswapは省略してます

最終的には書籍に載っていたサンプルソースで実装しました・・・