Сегодня я занимался написанием программы, которая в основном сортирует вход пользователя от наибольшего к наименьшему значению и отображает информацию после сортировки. Чтобы сделать это, я просмотрел некоторые алгоритмы и наткнулся на метод сортировки пузырьков. После прочтения некоторых статей я понимаю, как это работает в принципе, поэтому я пошел дальше и рассмотрел некоторые примеры кодирования алгоритмов сортировки пузырьков и реализовал то, что я узнал из примеров в моей программе. На выходе, который я получаю, кажется, что метод сортировки пузырьков работает ... в некотором роде. Из того, что я могу сказать, алгоритм/код сортировки пузырьков, который я написал, кажется, проходит через массив один раз, а не пробегает массив до тех пор, пока все целые числа не будут отсортированы в список с наименьшим значением. Может ли кто-нибудь помочь мне просмотреть мой код (особенно раздел сортировки пузыря) и указать мне в правильном направлении?Реализация алгоритмов (сортировка пузырьков) для упорядочивания массива
код ниже:
#include <iostream>
using namespace std;
int main() {
int pancakes[10];
int x;
int valueSwitched;
for (x = 0; x < 10; x++) {
cout << "Please input the number of pancakes person " << (x + 1) << " has eaten.\n";
cin >> pancakes[x];
}
for (int x = 0; x < 9; x++) {
for (int y = 0; y < 9; y++) {
if (pancakes[x] > pancakes[x + 1]) {
int valueSwitched = pancakes[x];
pancakes[x] = pancakes[x + 1];
pancakes[x + 1] = valueSwitched;
}
}
}
cout << "\n-----ListSorted-----\n\n";
for (int x = 0; x < 10; x++) {
cout << "Person " << (x + 1) << " ate: " << pancakes[x] << endl;
}
return 0;
}
Я не знаю, пузырьковую сортировку по сердцу, но это выглядит подозрительно, что у вас есть loop 'for (int y = 0; y <9; y ++) {' but 'y' не используется внутри тела цикла – user463035818