我想實現一個奇偶排序例程。我認爲我有中心思想,但有些不正確。我的奇偶排序程序有什麼問題?
int odd = 1;
int even = 0;
do {
for (odd; odd < size-1; odd += 2) {
if (unsorted[odd] > unsorted[odd + 1])
swap(&unsorted[odd], &unsorted[odd + 1]);
}
for (even; even < size-1; even += 2) {
if (unsorted[even] > unsorted[even + 1])
swap(&unsorted[even], &unsorted[even + 1]);
}
} while (unsorted[odd] > unsorted[odd + 1] && unsorted[even] > unsorted[even +1]);
我最初以爲我的錯誤是在while條件,但即使我遍歷do循環數十萬次排序的數組永遠不會成爲排序。任何人有任何想法,我哪裏錯了?
您是否嘗試使用調試器(例如,如果在Linux上使用'gdb')來理解您的代碼在做什麼? – 2012-01-30 06:04:07
修復您的縮進,首先 - 它使您的代碼變得非常多_much_難以閱讀(並且可能會隱藏錯誤!) – bdonlan 2012-01-30 06:04:33