Алгоритм пузырьковой сортировки начинается со сравнения первых двух элементов массива и их замены при необходимости. Наример, если вы хотите отсортировать элементы массива в порядке возрастания, а первый элемент больше второго, вам нужно поменять местами элементы. Если же первый элемент меньше второго, вы не должны менять его местами. Затем второй и третий элементы снова сравниваются и меняются местами, если это необходимо, и этот процесс продолжается до тех пор, пока последний и предпоследний элементы не будут сравнены и заменены. Это завершает первый шаг пузырьковой сортировки.
Если нужно отсортировать n элементов, то процесс, упомянутый выше, следует повторить n-1 раз, чтобы получить требуемый результат. Но для лучшей производительности на втором этапе последние и предпоследние элементы не сравниваются, потому что соответствующий элемент автоматически помещается в конце после первого шага. Аналогично, на третьем этапе последние и предпоследние и предпредпоследние элементы не сравниваются и так далее.
Для лучшего понимания посмотрим на рисунок.
На рисунке представлено 5 элементов для сортировки и 4 шага.
Программа для сортировки элементов с использованием алгоритма пузырьковой сортировки
// Программа для сортировки данных в порядке возрастания с использованием пузырьковой сортировки. #include <stdio.h> int main() { int data[100],i,n,step,temp; printf("Enter the number of elements to be sorted: "); scanf("%d",&n); for(i=0;i<n;++i) { printf("%d. Enter element: ",i+1); scanf("%d",&data[i]); } for(step=0;step<n-1;++step) for(i=0;i<n-step-1;++i) { if(data[i]>data[i+1]) // Чтобы отсортировать в порядке убывания, измените > на < в этой строке. { temp=data[i]; data[i]=data[i+1]; data[i+1]=temp; } } printf("In ascending order: "); for(i=0;i<n;++i) printf("%d ",data[i]); return 0; }
Enter number of terms(should be less than 100): 5 Enter elements: 12 1 2 5 3 In ascending order: 1 2 3 5 12
Примечание: хотя этот код используется в программировании на C, этот метод может применяться в любом программировании для сортировки элементов массива.
Алгоритм пузырьковой сортировки довольно популярен, но есть много других более хороших алгоритмов, чем пузырьковая сортировка.
Внимание! Пузырьковая сортировка не должна использоваться для сортировки больших данных, если производительность в этой программе имеет значение.