您好、欢迎来到现金彩票网!
当前位置:2019全年免费资料大全 > 桶链算法 >

排序算法____基数排序

发布时间:2019-06-07 10:09 来源:未知 编辑:admin

  基数排序是一种常见的算法,虽然在各个数据结构教材中都能看到,但在面试或笔试中却很少遇到。虽然知道基数排序的原理,但从未写过它的实现算法,最近看了后缀数组中用到了基数排序,又仔细研究了下,很有收获。

  基数排序不同于其他的排序算法,它不是基于比较的算法。基数排序是一种借助多关键字排序的思想对单逻辑关键字进行排序的方法。它是一种稳定的排序算法。多关键字排序中有两种方法:最高位优先法(MSD)和最低位优先法(LSD)。通常用于对数的排序选择的是最低位优先法,即先对最次位关键字进行排序,再对高一位的关键字进行排序,以此类推。

  算法的思想:类似于桶式排序,我们需要给待排序记录准备10个桶,为什么是10个??因为一个数的任何一位上,其数字大小都位于0~9之间,因此采用10个桶,桶的编号分别为0,1,2,3,4...9,对应待排序记录中每个数相应位的数值,基数排序也是因此而得名。我们先根据待排序记录的每个数的个位来决定让其加入哪个桶中。例如:待排序数组为

  此步骤即为教材中所说的分配,接下来就是要进行收集,依照桶的编号,将含有数据的桶中的数据依次取出,形成的新的数据记录为:

  再对这个数组按照十分位进行分配进桶,收集,最后再按照百位进行分配进桶,收集。就可得到最终的排序结果。

http://linkzoo.net/tongliansuanfa/171.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有