我正在爲C中的快速排序算法調試我的代碼。它在編譯時運行時出現「分段錯誤」,但編譯失敗。在C中使用快速排序實現的段錯誤
任何人都可以幫助我調試它,並給我我的代碼的工作版本?我知道互聯網上有現有的和工作的。但我真正想要的是找到我自己的代碼的錯誤。
void myQuickSort(int list[],int head, int tail)
{
int m = head;
int n = tail;
int key = list[m];
++head;
while(head < tail)
{
while(list[head] < key)
{
++head;
}
while(list[tail] >= key)
{
--tail;
}
//swamp two elements, to divide the array to two groups
int temp = list[head];
list[head] = list[tail];
list[tail] = temp;
}
//get the pivot element in dividing position
int temp = list[m];
list[m] = list[head];
list[head] = temp;
myQuickSort(list, m, head-1);
myQuickSort(list, head+1, n);
}
+1我錯過了一個。我也編輯了我的答案來反映這一點。 – 2012-01-07 13:49:53