妳的程序邏輯有問題,但是我不想仔細看了
快速排序雖然需要遞歸,但除了調整主元的位置之外是沒有最外層的while循環的
給妳壹個樣例
void?QuickSort_int(int?a[],?size_t?n){
register?int?i,?j;
register?int?tmp;
i?=?0;?j?=?n?-?1;
tmp?=?a[j];
while?(i?<?j)
{
for?(;?i?<?j?&&?a[i]?<=?tmp;?i++);
a[j]?=?a[i];
for?(;?j?>?i?&&?a[j]?>=?tmp;?j--);
a[i]?=?a[j];
}
a[i]?=?tmp;
QuickSort_int(a,?i);
QuickSort_int(&a[i?+?1],?n?-?1?-?i);
}