排序算法可视化

重置当前算法的可视化
生成新的随机数组
5 30

冒泡排序 可视化

算法信息

时间复杂度

O(n²) - 最坏和平均情况

空间复杂度

O(1) - 原地排序

稳定性

稳定

算法描述

冒泡排序通过重复地遍历要排序的列表,比较相邻的元素并交换它们的位置来完成排序。 每一轮遍历都会将当前未排序部分的最大元素"冒泡"到正确的位置。

伪代码

procedure bubbleSort(A : list of sortable items)
    n := length(A)
    repeat
        swapped := false
        for i := 1 to n-1 inclusive do
            if A[i-1] > A[i] then
                swap(A[i-1], A[i])
                swapped := true
            end if
        end for
        n := n - 1
    until not swapped
end procedure

排序算法比较

冒泡排序

最简单的排序算法,通过重复交换相邻元素实现排序。

O(n²) O(1) 稳定

选择排序

每次选择最小元素放到已排序部分的末尾。

O(n²) O(1) 不稳定

插入排序

构建最终排序数组,一次插入一个元素。

O(n²) O(1) 稳定

归并排序

分治算法,将数组分成两半,分别排序后合并。

O(n log n) O(n) 稳定

快速排序

分治算法,选择一个基准元素将数组分成两部分。

O(n log n) O(log n) 不稳定

堆排序

利用二叉堆数据结构进行排序。

O(n log n) O(1) 不稳定

Made with DeepSite LogoDeepSite - 🧬 Remix