建議先看看前言 : http://www.shnenglu.com/tanky-woo/archive/2011/04/09/143794.html
這一節講的是非線性排序。
一.計數排序(Counting Sort)
基本思想:對每一個輸入元素x,確定出小于x的元素個數。
適用范圍:適用于輸入是由小范圍的整數構成的序列。
穩定性:算法是穩定的。
具體實現:
輸出結果:
二.基數排序(Radix Sort)
基本思想:按組成關鍵字的各個位的值來實現排序的。
排序方式:
排序方式:LSD 由右向左排; MSD 由左向右排
推薦:嚴蔚敏《數據結構》上的基數排序。
先說下什么是基數:計算的基數就是基本的單元數。比如10進制的基數就是10,二進制的基數就2,八進制的基數是8等等。
基數排序說通俗點,就是把帶排序的N個數字右對齊排成一列。然后把相同的位數互相比較,來排序。
例圖:
以下是具體實現和分析:
推薦一個基數排序的動畫演示:http://blogimg.chinaunix.net/blog/upfile/070912120349.swf 桶排序就不寫了,本質就是計數排序和基數排序的結合。不過我有點不明白,我們一般說的桶排序貌似就是基數排序?
在我獨立博客上的原文:http://www.wutianqi.com/?p=2378
歡迎大家互相學習,互相探討。