Сортировка одномерного массива методом пузырька - 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;
}

Объяснение кода листинга программы

Представленный код реализует алгоритм сортировки массива методом пузырька. Список действий:

  1. Включаем необходимые заголовочные файлы: и . Первый используется для работы с функциями ввода-вывода, второй - для работы с булевыми значениями.
  2. Определяем размер массива (10 элементов) и создаём сам массив с помощью оператора присваивания. Изначально, элементы массива расположены в случайном порядке.
  3. Создаём булеву переменную sorted, которая будет указывать, отсортирован ли массив.
  4. Запускаем цикл do-while, который будет выполняться до тех пор, пока массив не будет отсортирован.
  5. Внутренний цикл for проходит по всем элементам массива, начиная с 1-го элемента, и сравнивает текущий элемент с предыдущим. Если текущий элемент меньше предыдущего, то значения элементов меняются местами, а переменная sorted устанавливается в false.
  6. Если внутренний цикл завершён и массив отсортирован, то выходим из цикла do-while.
  7. Выводим отсортированный массив на экран с помощью цикла for и функции printf.
  8. Возвращаем 0, чтобы указать, что программа успешно завершилась.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4 из 5
Похожие ответы