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