- 296 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 03:09:37 ]
- 修正の修正?
void quick(Data a[], int left, int right, int Cmp(Data x, Data y, int order), int order){ int pl; int pr; Data x; int _right; _right = right; while(1) { pl = left; pr = right; x = a[(pl+pr)/2]; do { while(Cmp(x, a[pl], order)) pl++; while(Cmp(a[pr], x, order)) pr--; if ( pl <= pr ){ swap(Data , a[pl], a[pr]); pl++; pr--; } } while(pl <= pr ); if (left < pr) {right = pr;continue;} else right = _right; if (pl < right) {left = pl;continue;} break; } }
|

|