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

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

作者: 大杂草 | 来源:发表于2020-07-21 17:39 被阅读0次

桶排序

概念

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

应用场景

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

计数排序

概念

计数排序其实是桶排序的一种特殊情况。桶的个数n与最大值是k相等,省掉桶内排序的时间。
计数排序中的“计数”指的是通过桶和原数组,能够转化为有序的。

应用场景

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

基数排序

概念

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

应用场景

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

课后思考

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

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

相关文章

  • (转)排序算法

    排序算法点这里 数据结构与算法——计数排序、桶排序、基数排序

  • 线性排序

    桶排序、计数排序、基数排序 一、线性排序算法介绍 1.线性排序算法包括桶排序、计数排序、基数排序。2.线性排序算法...

  • 数据结构与算法——计数排序、桶排序、基数排序

    数据结构与算法——计数排序、桶排序、基数排序 计数排序 计数排序有如下四个步骤。 首先会对每个输入进行频率统计,得...

  • 算法入门——计数排序、桶排序、基数排序

    上篇文章我们学习了算法入门——归并排序、希尔排序,这篇文章我们学习算法入门——计数排序、桶排序、基数排序。 计数排...

  • all

    算法与数据结构 常见算法类型 排序算法(冒泡、插入、选择、快排、希尔、堆排、归并、桶排、基数、计数)、字符串操作、...

  • 线性排序

    一、线性排序算法介绍 线性排序算法包括桶排序、计数排序、基数排序。 线性排序算法的时间复杂度为O(n)。 此3种排...

  • 桶排序、计数排序、基数排序

    一、线性排序算法介绍 线性排序算法包括桶排序、计数排序、基数排序。 线性排序算法的时间复杂度为O(n)。 此3种排...

  • php-计数排序、基数排序、桶排序

    计数排序、基数排序、桶排序 时间复杂度 O(n) 计数排序 基数排序 桶排序

  • 哈希队列栈链表树

    哈希(Hash) 特点:计数排序中的桶(复杂度 O(n+max),比快排还快桶排序 与计数排序的区别基数排序 与计...

  • 排序算法三(桶,计数,基数)

    桶排序,计数排序,基数排序算法的时间复杂度都是线性的,所以把这类排序算法叫作线性排序。 桶排序 概念:将要排序的数...

网友评论

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

      本文链接:https://www.haomeiwen.com/subject/oolwkktx.html