Сортировка одномерного массива методом пузырька - C (СИ)
Формулировка задачи:
Здравствуйте. Я начинающий пользователь языка Си. Мне нужна очень ваша помощь. У меня никак не выходит написать код, для того чтобы он сортировал числа по порядку, а именно алгоритмом bubble sort. Прошу, кто может, возможно у кого нибудь завалялись исходники, или есть что подсказать, я понимаю что это задание не сложное, но ничего не выходит. Саму суть алгоритма то я естественно понял, но не получается реализовать его. Мне нужен самый наипростейший что есть код, без всяких двумерных массивов. Просто чтоб я вводил числа и он их расставлял по порядку. Прошу помочь начинающему. Большое спасибо заранее.
С уважением.
Решение задачи: «Сортировка одномерного массива методом пузырька»
textual
Листинг программы
#include <bool.h> #include <stdio.h> #define LEN 10 int main() { int arr[LEN] = { 1, 3, 4, 2, 9, 7, 8, 0, 6, 5 }; bool sorted; do { sorted = true; for (int i = 1; i < LEN; i++) { if (arr[i] < arr[i - 1]) { sorted = false; int t = arr[i]; arr[i] = arr[i - 1]; arr[i - 1] = t; } } } while (!sorted); for (int i = 0; i < LEN; i++) { printf("%d ", arr[i]); } putchar('\n'); return 0; }
Объяснение кода листинга программы
Представленный код реализует алгоритм сортировки массива методом пузырька. Список действий:
- Включаем необходимые заголовочные файлы:
и . Первый используется для работы с функциями ввода-вывода, второй - для работы с булевыми значениями. - Определяем размер массива (10 элементов) и создаём сам массив с помощью оператора присваивания. Изначально, элементы массива расположены в случайном порядке.
- Создаём булеву переменную sorted, которая будет указывать, отсортирован ли массив.
- Запускаем цикл do-while, который будет выполняться до тех пор, пока массив не будет отсортирован.
- Внутренний цикл for проходит по всем элементам массива, начиная с 1-го элемента, и сравнивает текущий элемент с предыдущим. Если текущий элемент меньше предыдущего, то значения элементов меняются местами, а переменная sorted устанавливается в false.
- Если внутренний цикл завершён и массив отсортирован, то выходим из цикла do-while.
- Выводим отсортированный массив на экран с помощью цикла for и функции printf.
- Возвращаем 0, чтобы указать, что программа успешно завершилась.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д