波斯马BOSSMA Information Technology

C#排序算法之基数排序

发布时间:2010年9月14日 / 分类:DOTNET / 4,275 次浏览 / 评论

基数排序属于“分配式排序”,基数排序法又称“桶子法”,顾名思义,它是透过键值的部份信息,将要排序的元素分配至某些“桶”中,藉以达到排序的作用,基数排序法是属于稳定性的排序。基数排序的方式可以采用LSD(Least significant digital)或MSD(Most significant digital),LSD的排序方式由键值的最右边开始,而MSD则相反,由键值的最左边开始。

以LSD为例,假设有一串数值如下:   

首先根据个位数的数值,在走访数值时将它们分配至编号0到9的桶中:

接下来将这些桶子中的数值重新串接起来,成为以下的数列:

接着再进行一次分配,这次是根据十位数来分配:  

接下来将这些桶子中的数值重新串接起来,成为以下的数列:

这时候整个数列已经排序完毕。

思路比较简单,看看如何用C#实现:

其中用到了某些高级的数据结构,可能对性能有一定影响,因此下边的数据不具有很大的可比性。

本博客所有文章如无特别注明均为原创。
复制或转载请以超链接形式注明转自波斯马,原文地址《C#排序算法之基数排序

关键字:

建议订阅本站,及时阅读最新文章!
【上一篇】 【下一篇】

发表评论