Введение
Пузырьковая сортировка — это алгоритм сортировки, используемый в основном для сортировки небольших наборов данных.
Хотя существует множество доступных алгоритмов сортировки, алгоритм пузырьковой сортировки является самым простым в реализации из всех алгоритмов сортировки, но временная сложность пузырьковой сортировки не так велика.
Он работает, сравнивая соседние элементы в массиве и меняя местами элементы, если они находятся в неправильном порядке, и этот процесс продолжается до тех пор, пока массив не будет полностью отсортирован.
Звучит просто, я знаю :)
См. ниже визуализацию пузырьковой сортировки.

Посмотрим на реализации кода
Пузырьковая сортировка Python
def bubbleSort(arr):
change = False
for i in range(len(arr)-1):
if arr[i] > arr[i+1]:
arr[i], arr[i+1] = arr[i+1], arr[i]
change = True
if not change: return arr
return bubbleSort(arr)
x = [8, 1, 5, 7, 9, 3, 2, 4, 6]
print(x)
print(bubbleSort(x))
Вы можете использовать этот онлайн-компилятор для запуска этого кода.
Пузырьковая сортировка JavaScript
function bubbleSort(arr){
let change = false
for (let i=0; i<arr.length-1; i++){
if (arr[i] > arr[i+1]){
let tmp = arr[i]
arr[i] = arr[i+1]
arr[i+1] = tmp;
change = true
}
}
if (!change) return arr
return bubbleSort(arr)
}
let x = [8, 1, 5, 7, 9, 3, 2, 4, 6]
console.log(x)
console.log(bubbleSort(x))
Вы можете использовать этот онлайн-компилятор для запуска этого кода.
Пузырьковая сортировка Java
class Sorting {
public static int[] bubbleSort(int[] arr) {
boolean change = false;
for (int i = 0; i < arr.length - 1; i++) {
if (arr[i] > arr[i + 1]) {
int tmp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = tmp;
change = true;
}
}
if (!change)
return arr;
return bubbleSort(arr);
}
public static void printArray(int[] arr) {
System.out.print("[");
for (int i = 0; i < arr.length; i++) {
if (i == arr.length - 1)
System.out.println(arr[i] + "]");
else
System.out.print(arr[i] + ", ");
}
}
public static void main(String[] args) {
int[] x = { 8, 1, 5, 7, 9, 3, 2, 4, 6 };
printArray(x);
printArray(bubbleSort(x));
}
}
Вы можете использовать этот онлайн-компилятор для запуска этого кода.
Пузырьковая сортировка C++
#include <iostream>
int * bubbleSort(int arr[], int size) {
bool change = false;
for (int i = 0; i < size - 1; i++) {
if (arr[i] > arr[i + 1]) {
int tmp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = tmp;
change = true;
}
}
if (!change)
return arr;
return bubbleSort(arr, size);
}
void printArray(int arr[], int size) {
std::cout << "[";
for (int i = 0; i < size; i++) {
if (i == size - 1)
std::cout << arr[i] << "]" << std::endl;
else
std::cout << arr[i] << ", ";
}
}
int main() {
int x[] = { 8, 1, 5, 7, 9, 3, 2, 4, 6 };
int size = sizeof(x) / sizeof(x[0]);
printArray(x, size);
printArray(bubbleSort(x, size), size);
return 0;
}
Вы можете использовать этот онлайн-компилятор для запуска этого кода.
Пузырьковая сортировка PHP
<?php
function bubbleSort($arr){
$change = false;
for ($i=0; $i<count($arr)-1; $i++){
if ($arr[$i] > $arr[$i+1]){
$tmp = $arr[$i];
$arr[$i] = $arr[$i+1];
$arr[$i+1] = $tmp;
$change = true;
}
}
if (!$change) return $arr;
return bubbleSort($arr);
}
$x = [8, 1, 5, 7, 9, 3, 2, 4, 6];
echo json_encode($x);
echo "\n";
echo json_encode(bubbleSort($x));
?>
Вы можете использовать этот онлайн-компилятор для запуска этого кода.
Преимущество
- Пузырьковая сортировка проста для понимания и реализации.
- Он не требует дополнительного места в памяти.
- Его адаптивность к различным типам данных.
- Это стабильный алгоритм сортировки, означающий, что элементы с одинаковым значением ключа сохраняют свой относительный порядок в отсортированном выводе.
Недостаток
- Пузырьковая сортировка имеет временную сложность O(N²), что делает ее очень медленной для больших наборов данных.
- Это неэффективно для больших наборов данных, поскольку требует многократного прохождения данных.
Конец статьи. Спасибо за чтение!
Посетите мой веб-сайт, чтобы прочитать больше похожих статей!