[問題]簡單致極的quicksort
卻跑出來結果不合..... Orz..怎麼會這樣勒
這可是照原書上範例寫的 我除錯除到爆炸 卻怎麼都找不到錯誤 :(
請大家幫忙點一下 就好 謝謝
void quicksort(int a[], int low, int high)
{
int mid,i,pivot;
if(low<high) {
mid=partition(a,low,high);
quicksort(a,low,mid-1);
quicksort(a,mid+1,high);
}
int partition(int a[], int low , int high ) {
int i,j,pivot,temp;
i=low+1;
j=high;
pivot=a[low];
while(i<j) {
while((i<j)&&(a[i]<=pivot)) { i++;}
while((i<=j)&&(a[j]>pivot)) {j--;}
if(i<j) {
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
a[low]=a[j];
a[j]=pivot;
return j; }
void main(void)
{
int i;
int a[10]= {12,32,34,65,91,4,54,28,123,5}; //測試數據
quicksort(a,0,9); // 呼叫快速排序
for(i=0;i<=9;i++) // 印出結果
printf("%d\n",a[i]);
}
以下是輸出結果: 十分惱人的 5一直排在前面= =''怎麼會這樣勒~~
5
4
12
28
32
54
34
65
91
123
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.42.12.235
推
04/07 06:02, , 1F
04/07 06:02, 1F
推
04/07 06:03, , 2F
04/07 06:03, 2F
推
04/07 06:03, , 3F
04/07 06:03, 3F
推
04/07 06:03, , 4F
04/07 06:03, 4F
推
04/07 06:29, , 5F
04/07 06:29, 5F
→
04/07 09:05, , 6F
04/07 09:05, 6F