查看單個文章
舊 2006-10-28, 01:01 AM   #5 (permalink)
snoopy
註冊會員
 
snoopy 的頭像
榮譽勳章
UID - 33737
在線等級: 級別:49 | 在線時長:2676小時 | 升級還需:24小時級別:49 | 在線時長:2676小時 | 升級還需:24小時級別:49 | 在線時長:2676小時 | 升級還需:24小時級別:49 | 在線時長:2676小時 | 升級還需:24小時
註冊日期: 2003-02-02
VIP期限: 2011-06
住址: 台南共和國
文章: 1831
精華: 0
現金: 12744 金幣
資產: 12834 金幣
預設

C/C++語言 腳踏實地的做法
Radix sort
也是用在整數資料的排序方法。 先按照最後一位數(呼叫某個stable 排序法) 排序, 再按照倒數第二位數排序
技巧是一定要用穩定排序才行
當然如果你不用Radix sort也行
記得把如1 1 3先轉成int 113再排 排完再拆 這是小技巧

忽略第一列
Radix ex:
step 1 初值
====
1 1 3
3 5 8
3 5 6
2 4 9
2 5 4
1 2 8
2 3 8
2 3 1

step 2 按照最後一個位數排
====
2 3 1
1 1 3
2 5 4
3 5 6
3 5 8
1 2 8
2 3 8
2 4 9

step 3 按照最後第二個位數排
====
1 1 3
1 2 8
2 3 1
2 3 8
2 4 9
2 5 4
3 5 6
3 5 8

step 4 按照最後第三個位數排
====
1 1 3
1 2 8
2 3 1
2 3 8
2 4 9
2 5 4
3 5 6
3 5 8


Java 偷懶的做法直接呼叫類別
Arrays.sort(a,fromIndex,toIndex);
//一行就做完了

sort(int[] a, int fromIndex, int toIndex)
Sorts the specified range of the specified array of ints into ascending numerical order.

最快的方法 看隔壁的
snoopy 目前離線  
送花文章: 623, 收花文章: 392 篇, 收花: 1288 次
回覆時引用此帖