Radix Sorts

Sorting Bound

顺序比较算法的时间复杂度的下界

NlogN

只要是顺序比较

最坏情况下时间复杂度不可能比这个更好

因为要确定N个的关系,至少要lgN!次比较

数学上,lgN!又近似NlogN

计数排序

时间复杂度

o(N + R)

  • 创造一个R大小的数组储存计数 R
  • 计数每个出现的次数 N
  • 计算每个item的目标位置 R
  • 创造一个N大小的数组储存排序好的数据
  • 复制

如果N大于R(字母表),用计数排序比较好

而且是稳定的(相同元素不用排序)

对比

插入排序:已经要排序好了的时候,时间复杂度o(N)

合并排序:什么时候都是NlogN(它是最快的而且稳定的排序)

快速排序:如果是随机的,他就是最快的,但是不是稳定的

LSD Sort

从右到左的列开始排序,根据优先级进行计数排序

对比

相同的元素多:LSD更快

不同的元素多:merge sort更快

相关推荐
宇木灵6 分钟前
C语言基础-六、指针
c语言·开发语言·学习·算法
苦藤新鸡7 分钟前
64 搜索平移递增数组中的元素
数据结构·算法
Vic1010111 分钟前
链表算法三道
java·数据结构·算法·链表
二年级程序员11 分钟前
一篇文章掌握“栈”
c语言·数据结构
再难也得平25 分钟前
[LeetCode刷题]128.最长连续序列(从零开始的java题解)
java·算法·leetcode
xiaoye-duck34 分钟前
《算法题讲解指南:优选算法-双指针》--05有效三角形的个数,06查找总价值为目标值的两个商品
c++·算法
ArturiaZ36 分钟前
【day31】
开发语言·c++·算法
xiaoye-duck40 分钟前
《算法题讲解指南:优选算法-双指针》--07三数之和,08四数之和
c++·算法
琢磨先生David1 小时前
Java每日一题
数据结构·算法·leetcode
im_AMBER1 小时前
Leetcode 125 验证回文串 | 判断子序列
数据结构·学习·算法·leetcode