Введение
Пузырьковая сортировка — это алгоритм сортировки, используемый в основном для сортировки небольших наборов данных.
Хотя существует множество доступных алгоритмов сортировки, алгоритм пузырьковой сортировки является самым простым в реализации из всех алгоритмов сортировки, но временная сложность пузырьковой сортировки не так велика.
Он работает, сравнивая соседние элементы в массиве и меняя местами элементы, если они находятся в неправильном порядке, и этот процесс продолжается до тех пор, пока массив не будет полностью отсортирован.
Звучит просто, я знаю :)
См. ниже визуализацию пузырьковой сортировки.
Посмотрим на реализации кода
Пузырьковая сортировка 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²), что делает ее очень медленной для больших наборов данных.
- Это неэффективно для больших наборов данных, поскольку требует многократного прохождения данных.
Конец статьи. Спасибо за чтение!
Посетите мой веб-сайт, чтобы прочитать больше похожих статей!