何も見ないで書いてみた(クイックソート)(2007/07/23(月) 23:55:28)
何も見ないでクイックソートを書いてみた(汗
while(i < num && array[i] < s)i++; while(j >= 0 && array[j] >= s)j--;
の、各whileの1つ目の条件抜けてて、結構ハマった。。。。
ソース
void quickSort(int *array, int num){ if(num < 2)return; int i = 0, j = num - 2, s = array[num - 1], tmp; while(i < j){ while(i < num && array[i] < s)i++; while(j >= 0 && array[j] >= s)j--; if(i >= j)break; tmp = array[i]; array[i] = array[j]; array[j] = tmp; i++; j--; } array[num - 1] = array[i]; array[i] = s; if(i > 1)quickSort(array, i); if(num - i - 1 > 1)quickSort(array + i + 1, num - i - 1); }
参考
俺の頭の中