int main(void)
{
int a[5] = {36,24,10,6,12};
int pass;
int i;
int hold;
/* bubble sort */
/* loop to control number of passes */
for(pass=1; pass<5; pass++){
/* loop to control number of comparisons per pass */
for(i=0; i<5; i++){
if(a[i] > a[i+1]){
hold = a[i];
a[i] = a[i+1];
a[i+1] = hold;
}
}
}
return 0;
}
В этой программе сортировки пузырьков оператор if сравнивает значение соседнего элемента. Если счетчик I равен 4, то если бы оператор был бы равен [4]> a [4 + 1], поэтому мой вопрос в том, что в массиве нет элемента [5], так как программа сравнивает и выполняет работу?Bubble Сортировать по C неправильный код! [Deitel C 6th Ed]
Я не понимал для (pass = 1; pass < 5; pass ++) loop. Для чего этот цикл работает? И почему цикл начинается с 1 и продолжается 4 раза вместо 5.
Кто-нибудь, пожалуйста, продемонстрируйте, как работает эта программа сортировки пузырьков? Ура!
Код неправильный, он обращается за пределы массива. – Barmar
Код у вас есть * не работает. Он имеет * неопределенное поведение *, потому что он индексирует массив за пределами границ. –
Я нашел его из книги пользователя deitel! как это может быть неправильно? C Как программировать Dietel 6th Edition – Sairat