計數排序法-how to use Array
計數排序法t前面的泡沫排序法是採用兩者比較並交換,達到由小而大或由大而小排列的效果,不過本節的計數排序法則是不移動資料,但直接給予名次。為了充份理解計數排序法的原理,你先假想一個N位學生的教室裡,每人均舉著自己的分數,每一學生如何知道自己是第幾名呢?有一個辦法就是每個人均數一數分數比自己高的人數再加一,就是自己的名次,但其比較次數還是N*N,所以若令他們排成一排,由第一個逐一往右比較,且分數低的,令其名次加1,則第二個人就不必與第一個比較,同理,第三個也是往右比較即可,不必與第一、二個人比較,所以其總比較次數約為[N*N]/2,此即為計數排序法,若有數列資料8、2、9、7、1則其演算過程如下:
下载地址
用户评论