При работе с данными их иногда требуется сортировать. Для этого существуют различные алгоритмы. Самый простой – это сортировка пузырьков в Си. Она позволяет отсортировать массив информации, не предпринимая никаких сложных манипуляций.
Соответствующий алгоритм встречается преимущественно в программировании. Он не выходит за пределы обработки массива в программном коде.
Определение и особенности
Пузырьковая сортировка подойдет на все случаи жизни. Это принцип обработки массива с int (переменными), который базируется на сравнении позиций. Функционирует медленнее остальных подходов классификации электронных материалов.
К особенностям алгоритма относят следующие моменты:
- обработка массива пузырьком стала базой для других методов классификации (пример – перемешивание);
- медленная работа в сравнении с остальными алгоритмами;
- подходит для небольшого массива – для быстрого функционирования приложения;
- встречается не только в Си, но и в PHP, а также других языках программирования;
- сложность – O(n^2);
- легко осваивается даже новичками.
Данный подход носит название «сортировка простыми обменами».
Принцип работы
Сортиро вка функционирует легко и просто. Пусть будет дан массив с int i. Работает рассматриваемый прием в несколько шагов:
- Проход по всему массиву.
- Сравнение каждого элемента массива с соседним, парами.
- Если при сравнении значение int i больше, чем int i+1, соответствующие компоненты мы меняем местами.
Больше никаких действий предпринимать не нужно. Таким способом можно действовать и «на бумаге» для понимания принципа функционирования. Для этого достаточно проводить сравнение пар и менять элементы местами, если значение «справа» меньше, чем «слева».
Процесс коддинга
В СИ пузырьковая «классификация» пишется в несколько шагов. То же самое касается PHP и других методов коддинга. Процедура всегда будет одинаковой:
- Создать два цикла For. Они нужно для прохождения по всем элементам массива N раз, где N – размер массива.
- Проводить сравнения ячеек множества данных. Для этого применяется оператор ветвления IF.
- Осуществлять замену компонентов при необходимости.
Bubble Sort легко написать даже новичку.
Пример кода
Классификация пузырьком выглядит в качестве кода так:
#include <iostream>
using namespace std;
int main() {
setlocale(LC_ALL, "rus");
int digitals[10]; // объявление множества на 10 элементов I size = 10)
cout << "Введите 10 чисел для заполнения массива: " << endl;
for (int i = 0; i < 10; i++) {
cin >> digitals[i]; // считывание компонентов
}
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 9; j++) {
if (digitals[j] > digitals[j + 1]) {
int b = digitals[j]; // создание дополнительной переменной
digitals[j] = digitals[j + 1]; // замена местами компонентов
digitals[j + 1] = b; // значения элементов
}
}
}
cout << "Массив в отсортированном виде: ";
for (int i = 0; i < 10; i++) {
cout << digitals[i] << " "; // вывод итогового результата
}
system("pause");
return 0;
}
Подробный разбор
После того, как кодификация готова, можно рассмотреть принцип алгоритма «пузырьком» на наглядном примере:
- В строке 16 происходит создание цикла For. То же самое осуществляется в 17 строке, но в данном случае речь идет о вложенности.
- Следующая запись – сравнение двух компонентов. Если результат условия – true, значения меняются. В противном случае – пропуск этапа.
- Строчка 19 – это создание int b. Она нужна для корректировки ячеей degitals и degitals [i+1].
В результате обработки кода на экране появится окно, в котором можно задать с клавиатуры множество: 2 4 10 и так далее. Цепочка может быть абсолютно любой.
Выше представлен пример того, как будет выглядеть итоговое приложение.
Несколько слов об улучшении
Предложенный алгоритм можно упростить и улучшить. Ниже представлен пример того, как это сделать.
Для оптимизации здесь проделано следующее:
- 17 строчка – изменение условия внутреннего цикла. Это помогает не сравнивать дополнительный раз элементы массива. После каждого прохода внешнего цикла внутренний уменьшается на 1.
- Если массив стал отсортированным, программа все равно будет работать.
- Чтобы убрать данный недостаток, рекомендуется в 5 строке объявить переменную flag. Ее инициализация получила значение true. Она будет откорректирована, если условия 4 строчки положительны.
- Вместо true и false переменная flag может иметь тип int, которое хранит 1 или 0.
- В 9 строчке если булева переменная – истина, массив отсортирован. Нужно остановить процесс через break. В противном случае обработка информации будет продолжаться далее.
- В 6 строке появилась функция swap. Она принимает два аргумента через запятую и производит их замену. Рассматриваемый случай приводит к работе с digitals.
Последний шаг предпринимать вовсе не обязательно. Он не ускоряет работу итоговой программы – лишь делает кодификацию в несколько раз меньше.
Как лучше понимать процесс
Пузырьковая сортировка C или PHP – это не так трудно, как может показаться изначально. Чтобы лучше разбираться в программировании и работе с массивами данных, стоит пройти специализированные дистанционные компьютерные курсы.
Они:
- Позволяют получать знания в любом месте и в любое время. Достаточно подключиться к интернету.
- Рассчитаны на разный уровень знаний. Есть предложения не только для продвинутых программеров, но и для новичков.
- Предлагают бесценный опыт, помощь в трудоустройстве и сборе портфолио, а также сопровождение первоклассными кураторами.
- Разнообразны. Можно выбрать одно или несколько направлений, которые удастся освоить за период от пары месяцев до года.
По выпуску выдается сертификат установленного образца. На курсах научат не только пузырьковой сортировке, но и другим методам работы с информацией.
Также вам может быть интересен курс «Программист C» в Otus.