关注我——个人公众号:后端技术漫谈
我目前是一名后端开发工程师。主要关注后端开发,数据安全,网络爬虫,物联网,边缘计算等方向。
原创博客主要内容
- Java知识点复习全手册
- Leetcode算法题解析
- 剑指offer算法题解析
- SpringCloud菜鸟入门实战系列
- SpringBoot菜鸟入门实战系列
- Python爬虫相关技术文章
- 后端开发相关技术文章
前言
本专题旨在快速了解常见的数据结构和算法。
在需要使用到相应算法时,能够帮助你回忆出常用的实现方案并且知晓其优缺点和适用环境。并不涉及十分具体的实现细节考究。
字符串排序算法简介
对于许多排序应用,决定顺序的键都是字符串。
其主要思想是利用比较,根据字符的有限性通过计数的方式来划分字符串的排名位置。
主要介绍以下几种方式:
- 预备知识:键索引计数法
- 低位优先的字符串排序 LSD string sort
- 高位优先的字符串排序 MSD string Sort
- 三向字符串快速排序 Three-way string quicksort
字符串排序算法要求大家先理解:基数排序和计数排序
排序算法最强总结及其代码实现
常用方法
预备知识:键索引计数法
首先我们需要了解一个预备知识:键索引计数法
键索引计数法作为三种字符串排序算法中两种的基础,本身也很适用于小整数键的简单排序。
键索引计数法主要分为四步:统计频率,将频率转换为索引,数据分类,回写。
原理图:
举例说明:
比如数组a={1,2,3,4,2,3,4,2,1,3,4,2,3,4},它里面重复的数字比较多,不重复的只有1,2,3,4,这时就可以用此方法。