作者kafai (士氣該回來吧…)
看板NTUEE107HW
標題[心得]bucket, selection, quick sort 是甚麼?
時間Sun Nov 9 12:36:43 2003
相信未做作業的同學,要看那三題又長又臭的英文解釋,都會頓時沒有胃口
小弟在此獻醜
bucket sort
假設要排序的數列為
{66,21,18,95,16,17,14,54} 八個數 a[8]
那麼變要定義一個 10*8 二維陣列 b[10][8]
將個為n的數放進b[n][]中
b[1][0]=2
1
b[4][0]=1
4 b[4][1]=5
4
b[5][0]=9
5
b[6][0]=6
6 b[6][1]=1
6
b[7][0]=1
7
b[8][0]=1
8
由上至下,左至右放回 a[]
此時a變為{21,14,54,95,66,16,17,18}
繼續對十位、百位…進行上面步驟就可以了,就是小學時學比較兩數大小的方法
selection sort
數列同上
在整個陣列中找出最小的與第一個互換 {
14,21,18,95,16,17,
66,54}
不理第一個,從餘下的找出最小的與第二個互換 {14,
16,18,95,
21,17,66,54}
不斷重覆至排好為止
quick sort
數列也同上
先鎖定第一個元素"66"
「從最右邊開始向左,找第一個比66小的"54",互換位置 {
54,21,18,95,16,17,14,
66}
從左邊開始向右找第一個比66大的"95",互換 {54,21,18,
66,16,17,14,
95}」
重覆引號步驟,直至66左邊的都比66小,右邊都比66大
此例完成時為{54,21,18,14,16,17,66,95}
對66的左邊、右邊兩個子數列{54,21,18,14,16,17} {95}
重覆上述操作
--
██ ◢ ███◢ ICQ :179037634
██◢◢ ██◢█ ● E-mail:kafai410a@yahoo.com
██◢◤ █◤◢ █◢▆▆ █◤◢ ◢ MSN :kafai410@msn.com
█◢█◣ ◢◤█ ◢█ ◢◤█ █
◢█◥█ ◢◢█ ██ ◢◢█ █ ꈛ
from NTUEE
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.239.182
→ ALEXXXX:真是個大好人m(_ _)m 推 140.112.250.26 11/09
→ smarttb1:<(_ _)> 推140.112.239.155 11/10