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更快

相关推荐
I_belong_to_jesus4 小时前
C++关于分支预测的优化1
开发语言·c++·算法
Code_Solitude11 小时前
C语言动态内存 + 柔性数组 + 数组名退化
c语言·算法·柔性数组
上海潭龙东海科技有限公司11 小时前
客运站管控之动态孪生技术方案(新增一屏管控模块
数据仓库·人工智能·算法·重构·动态规划
YLCHUP14 小时前
【思维&图论建模】题解:债权(debt)_图论_建模_思路转化_思维题目_C++算法竞赛
c++·笔记·算法·数学建模·贪心算法·深度优先·图论
思麟呀14 小时前
背包DP(01背包+完全背包)
c++·算法
笑容掩饰我的失落15 小时前
区块链从小白到精通(七):Solidity 语法精讲——数据类型、函数、修饰器与事件
算法·区块链·php·智能合约·哈希算法
Pniubi16 小时前
力扣24. 两两交换链表中的节点(递归)
算法·leetcode·链表
nice_lcj52016 小时前
LRU 缓存入门:它是什么、怎么用、面试怎么手写
java·数据结构·缓存·面试·lru
꧁细听勿语情꧂17 小时前
直接选择排序,堆排序,冒泡排序,递归快速排序、hoare版本、挖坑法、lomuto前后指针,非递归快速排序
c语言·开发语言·数据结构·算法