算法-字符串
来源:互联网 发布:架子鼓app软件下载 编辑:程序博客网 时间:2024/06/05 02:42
字符串排序
一、键索引计数法
- 时间复杂度:线性时间,排序N个键为0-R-1需要11N+4R+1次。因为不是继续比较的排序。计数排序嘛,分配型的排序方法,以空间换时间。
- 适用:小整数键
- 步骤:频率统计,频率转化为索引,数据分类,数据回写。
- 特点:是其他三种方法的基本操作
二、低位优先字符串排序(LSD Least-Significant-Digit First)
- 时间复杂度:基于键索引排序法 对基于R个字符的字母表的N个长度为W的元素,LSD需要访问~7WN+3WR次数组,空间复杂度为O(N+R)
- 适用:定长字符串
- 特点:是稳定排序的一种
三、高位优先字符串排序
- 时间复杂度:亚线性,最坏情况下为线性。
- 适用:不定长的随机字符串
- 特点:递归算法,和快排类似,采用切分,一定要搭配插排适用,不然空间复杂度爆炸(N+WR)。插排的阈值M应该为基数R的平方根级别。
- 最坏情况:数组含有大量重复键或较长的公共前缀(比如域名)
四、三向字符串快速排序
- 时间复杂度:N-Nw,w为字符数组中最长字符串的长度。
- 适用:含有较长的公共前缀或大量重复主键的情况。专门为了弥补MSD算法缺陷而设计的,结合三向切分快排思想。
- 特点:递归算法,三向快排的思想,较为通用(和归并排序的情况差不多,最好最坏情况上下界差距不是特别大)是原地排序的方法,空间复杂度为W+logN
阅读全文
0 0
- 字符串算法
- 字符串算法
- 字符串算法
- 字符串算法
- 【算法】字符串
- [算法] 字符串
- 算法-字符串
- 字符串 [BF算法] --->字符串
- 字符串算法manacher算法
- 算法 字符串匹配算法
- 字符串---字符串匹配KMP算法
- 【字符串】KMP字符串匹配算法
- 字符串算法之kmp算法
- 字符串算法之sunday算法
- KMP算法 字符串匹配算法
- BM算法 字符串匹配算法
- KMP算法/字符串匹配算法
- 字符串查找算法:bm算法
- Leetcode21.+Leetcode75. 归并排序和快速排序的实现
- Hadoop 参数调优
- 数据结构实验之排序四:寻找大富翁
- js延迟控制图片动画显示
- 参加2017年校招及实习的一点心得
- 算法-字符串
- cat > $file <<EOF...EOF
- 【洛谷 3371】【模板】单源最短路径(spfa+slf)
- IO流的学习—File类
- 发送邮件
- 线性代数 04.01 n维向量
- Ajax-用户名验证简单例子(详解)
- java:23种设计模式详解
- Ubuntu 使用HugePage 加速应用