Я пытаюсь реализовать нечетно-четную процедуру сортировки. Я думаю, что у меня есть основная идея, но что-то не так.
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 сотни тысяч раз, отсортированный массив никогда не сортируется. У кого-нибудь есть идеи, где я ошибаюсь?