C/C++の宿題を片付けます 119代目
■ このスレッドは過去ログ倉庫に格納されています
0574デフォルトの名無しさん
2008/12/11(木) 17:25:43クイックソートはwikiに無いみたいなので暇つぶしにフルスクラッチで作ってみた
low, highはソート範囲のインデックスの最小値、最大値
#define swap(x, y) do { int t = x; x = y; y = t; } while(0)
void qsort(int data[], int low, int high)
{
int i, j, k;
int piv;
i = low;
j = high;
k = (low + high) / 2;
piv = data[k];
while(i <= j) {
while(data[i] < piv) ++i;
while(data[j] > piv) --j;
if(i > j) break;
swap(data[i], data[j]);
++i;
--j;
}
if(j > low) qsort(data, low, j);
if(high > i) qsort(data, i, high);
}
■ このスレッドは過去ログ倉庫に格納されています