моя функция insertionSort работает для небольших массивов, но не работает для массива с 50 000 случайных значений. Я потратил часы, пытаясь понять это, но я в тупике. Вот код:C++ inserting sort не работает для больших массивов
void insertionSort(int array[], int length) {
int swapHolder, counter, index;
for (counter = 1; counter < length; counter++) {
index = counter;
while (counter > 0 && array[index - 1] > array[index]) {
swapHolder = array[index];
array[index] = array[index - 1];
array[index - 1] = swapHolder;
index--;
}
}
}
Моя другая функция сортировки (BubbleSort) отлично работает для больших массивов, но я повесил трубку, по этому вопросу.
Когда вы говорите «не работает», что вы подразумеваете под этим? Не могли бы вы попытаться создать [Минимальный, полный и проверенный пример] (http://stackoverflow.com/help/mcve) и показать нам? И пожалуйста [читайте о том, как задавать хорошие вопросы] (http://stackoverflow.com/help/how-to-ask). –
Почему вы уменьшаете 'index' вместо того, чтобы увеличивать его? O_o – mangusta
... и почему вы проверяете, есть ли« counter> 0 », потому что это всегда будет верно? Гарантированный. 'counter' всегда не менее 1, и он никогда не уменьшается. Ответ на этот вопрос просто: «Ваша реализация сортировки вставки неверна». –