ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

《数据结构与算法之美》10——排序(三)桶排序、计数排序、基数排序

2020-06-21 22:51:32  阅读:231  来源: 互联网

标签:10 小写字母 之美 大写字母 计数 有序 排序 数据


一、桶排序

概念

桶排序,核心思想是将要排序的数据分到几个有序的桶里,每个桶里的数据再单独进行排序。桶内排序之后,再把每个桶里的数据按照顺序依次取出,组成的序列就是有序的。

 

应用场景

桶排序比较适合用在外部排序中。所谓的外部排序就是数据存储在外部磁盘中,数据量比较大,内存有限,无法将数据全部加载到内存中。

 

二、计数排序

概念

计数排序其实是桶排序的一种特殊情况。桶的个数n与最大值是k相等,省掉桶内排序的时间。

计数排序中的“计数”指的是通过桶和原数组,能够转化为有序的。

 

应用场景

计数排序只能用在数据范围不大的场景中。并且计数排序只能给非负整数排序,如果数据是其他类型,要转化为非负整数。

 

三、基数排序

概念

根据数据的每一位来排序,到达最终有序。

 

应用场景

基数排序对要排序的数据是有要求的,需要可以分割出独立的“位”来比较,而且位之间有递进关系。除此之外,每一位的数据范围不能太大,要可以用线性排序算法来排序。

 

四、课后思考

假设我们现在需要对D,a,F,B,c,A,z这个字符串进行排序,要求将其中所有小写字母都排在大写字母的前面,但小写字母内部和大写字母内部不要求有序。比如经过排序之后为a,c,z,D,F,B,A,这个如何来实现呢?如果字符串中存储的不仅有大小写字母,还有数字。要将小写字母的放到前面,大写字母放在最后,数字放在中间,不用排序算法,又该怎么解决呢?

直接划分桶,小写字母、数字、大写字母三个桶,遍历字符串,把字母放进各自的桶里,然后再把小写字母、数字、大写字母三个桶直接合并。

 

标签:10,小写字母,之美,大写字母,计数,有序,排序,数据
来源: https://www.cnblogs.com/liang24/p/13174460.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有