排序算法列表

一. 稳定的排序

  • 冒泡排序(bubble sort)— O(n²)
  • 插入排序(insertion sort)—O(n²)
  • 鸡尾酒排序(cocktail sort)—O(n²)
  • 桶排序(bucket sort)—O(n²);需要O(k)额外空间
  • 计数排序(counting sort)—O(n+k);需要 O(n+k)额外空间
  • 归并排序(merge sort)—O(nlog n);需要O(n)额外空间
  • 原地归并排序—O(nlog {2}n)如果使用最佳的现在版本
  • 二叉树排序(binary tree sort)— O(nlog n)期望时间;O(n²)最坏时间;需要 O(n)额外空间
  • 鸽巢排序(pigeonhole sort)— O(n+k);需要O(k)额外空间
  • 基数排序(radix sort)—O(nk);需要O(n)额外空间
  • 侏儒排序(gnome sort)—O(n²)
  • 图书馆排序(library sort)— O(nlog n)期望时间;O(n²)最坏时间;需要(1+E)n额外空间
  • 块排序(block sort)—O(nlog n)

二.不稳定的排序

  • 选择排序(selection sort)—O(n²)
  • 希尔排序(shell sort)— O(nlog {2}n)如果使用最佳的现在版本
  • clover排序算法(Clover sort)— O(n)期望时间,O(n²)最坏情况
  • 梳排序  O(nlog n)
  • 堆排序(heap sort)—O(nlog n)
  • 平滑排序(smooth sort)— O(nlog n)
  • 快速排序(quick sort)— O(nlog n)期望时间,O(n²)最坏情况;对于大的、随机数列表一般相信是最快的已知排序
  • 内省排序(introsort)—O(nlog n)
  • 耐心排序(patience sort)—O(nlog n+k)最坏情况时间,需要额外的O(n+k)空间,也需要找到最长的递增子序列(longest increasing subsequence)


文章出处:https://zh.wikipedia.org/wiki/%E6%8E%92%E5%BA%8F%E7%AE%97%E6%B3%95

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值