こんにちは、私はhwのためにこの関数を書いています。それはベクトルの代わりに配列でうまく動作しても動作しません。誰でも助けてくれますか?前もって感謝します :]。奇妙なバグのベクトルを使ったクイックソート
void quick2 (vector <int> & qlist2, int left, int right) {
int i = left, j = right;
int middle = qlist2[qlist2.size()/2];
if (j - i < 1) {
return;
}
while (i <= j) {
while (qlist2[i] < middle) {
i++;
}
while (qlist2[j] > middle) {
j--;
}
if (i <= j) {
swap (qlist2[i], qlist2[j]);
i++;
j--;
}
}
if (left < j)
quick2 (qlist2, left, j);
if (i < right)
quick2 (qlist2, i, right);
}
「動作していません」どうしてうまくいかないのですか? –
jが2番目の 'while'ループで-1に達する – CNoobie