自己用c 寫的快速排序法,不知道哪有問題,麻煩大家看看,謝謝了

時間 2021-10-14 21:04:31

1樓:瘋狂

你的partition函式錯了,其他部分都沒有問題。以下是我修改過的程式。

#include

using namespace std;

int partition(int* array,int left, int right)

}//while end

array[left]=array[r];

array[r]=pivotkey;

return r;

}void qsort(int* array, int left, int right)

}int main()

;qsort(array,0,5);

for(int i=0;i<6;i++)

cout<

cout << endl;

return 0;

}程式出了問題,要學會除錯。首先,判斷哪個函式出錯了。然後,再針對出錯的函式進行除錯,發現問題。

qsort裡的partition是將arrary排列成: 小於等於array[left]數 <= arrary[left] < 大於array[left]的數。

檢查partition是否正確的方法是,直接在main函式裡呼叫它。如:

int main()

;int mid = partition(array,0,5);

cout << "mid=%d" << mid << endl;

for(int i=0;i<6;i++)

cout<

cout << endl;

return 0;

}通過上面的main就可以看出partition裡while出錯了。然後,畫圖模擬l和r的移動,慢慢想想就可以分析出問題來。

2樓:【雨夜楓神

懶的看,這是我以前寫的,你自己對照看看吧

template

inline void csort::quicksort(t x, int left, int right)

while (x[--j] > pivot) {}if (i < j)

swap(&x[i], &x[j]);

else

break;

}swap(&x[i], &x[right - 1]);

quicksort(x, left, i - 1);

quicksort(x, i + 1, right);

}else

insertsort(x + left, right - left + 1);

}好像沒給完

template

inline void csort::insertsort(t x, const int n)}

3樓:匿名使用者

懶的看,這是我以前寫的,你自己對照看看吧

//快速排序

void quciksort(int a,int low,int high)

本人現在面臨很煩惱的問題,不知道自己是不是敏感面板

過敏了。全部停用吧。我建議你停用任何產品2個月,臉好了後。就用點大寶美加淨保溼就行了。建議你馬上停用任何化妝品,出現問題的時候再用任何化妝品都可能會出現更糟的情況。注意清潔 不如用少量橄欖油按摩,代替護膚品來滋潤 現在 幹,而且毛孔大,就明顯是缺水的表現。橄欖油富含維生素,可以解決乾乾的狀況不妨試試...

新買的本子不知道幹嘛用??日記什麼的,有本子寫了

很羨慕你啊,還有堅持寫日記的習慣,堅持啊。我原來也會寫日記的,只是偶爾,現在沒有了。後來開始寫一些隨筆小文,有時候忽然會想到一些優美的句子就記下來,有時候也會在工作生活當中碰到一些,也會隨時摘抄下來,然後有時間就總結整理一下。有時候也會心血來潮發到自己空間的日誌裡,和朋友們分享。下面摘抄幾個送給你 ...

不知道是我心裡有問題還是怎麼的,總覺得自己太醜了不敢出門,怎麼辦?是心裡有問題嗎?怎麼解決

佳佳jiajia軒軒 到不敢出門,是有點嚴重,建議找個正規的心理諮詢師諮詢一下吧 亥沛厹 不敢出門?什麼問題自己不知道?不會吧?我覺得自己太醜了,不敢出門怎麼辦?這是心裡問題嗎?我 在下面 虹儁 小男孩家家,先不說長得還真不錯,就算醜點也沒關係。俗話說 粗柳簸箕細柳鬥,世上誰見男兒醜 男人,只要發揮...