雙層排序問題

看板C_and_CPP (C/C++)作者 (低調奢華簡約時尚)時間16年前 (2009/06/22 21:33), 編輯推噓2(2025)
留言27則, 4人參與, 最新討論串1/6 (看更多)
不好意思 小弟新手 最近遇到一個問題 問題如下: 若英文字母的priority的大小如下BROYGLPW 要將12組資料依序排好: 先依priority,再依數值由小至大,將結果輸出至檔案. 結果檔案內容應如下: B 81 B 99 R 23 R 56 O 72 W 15 L 11 Y 55 O 78 W 89 P 98 G 56 該如何寫 請板上大大教一下 給個方向 謝謝 -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.169.99.37

06/22 22:00, , 1F
先依照字母排序資料, 然後再就每一組字母內的數字排序不
06/22 22:00, 1F

06/22 22:01, , 2F
就得了?? 先排出 BB E F G HHH M NN // 隨便亂舉例的.
06/22 22:01, 2F

06/22 22:01, , 3F
再對有重複字母的項目計次, 只排序裡面的數字....
06/22 22:01, 3F

06/22 22:02, , 4F
另一個方法, 如果數字都小於100, 字母也都只有一個....
06/22 22:02, 4F

06/22 22:03, , 5F
把每一筆資料變成 字母x100 + 數字; 字母要如何轉成數字
06/22 22:03, 5F

06/22 22:03, , 6F
來乘100?? 看你要用ASCII code直接乘, 或者把每個字母重
06/22 22:03, 6F

06/22 22:04, , 7F
新對應成一個數字, 如A=0, B=1, C=2等, 就可以對這個換
06/22 22:04, 7F

06/22 22:04, , 8F
算後的數字直接排序了; 結論, 先問問你自己, 給你這些
06/22 22:04, 8F

06/22 22:05, , 9F
資料, 你自己用大腦用紙筆算, 會怎樣排, 再想如何程式化
06/22 22:05, 9F

06/22 22:06, , 10F
剛沒注意到字母的priority, 不過就上面的兩種方法來說也
06/22 22:06, 10F

06/22 22:06, , 11F
不難轉換; 先把字母依priority給它另一個代表值來比大小
06/22 22:06, 11F

06/22 22:07, , 12F
之後再挑一個方法來排序應該就可以了....@_@"
06/22 22:07, 12F

06/22 22:26, , 13F
對了, 如果您懂得什麼叫做stable的sort, 只要使用stable
06/22 22:26, 13F

06/22 22:27, , 14F
的sorting algorithm, 那麼先對數字做排序, 然後再依字
06/22 22:27, 14F

06/22 22:27, , 15F
母的priority排序一次, 理論上問題就解決了....
06/22 22:27, 15F


06/22 22:28, , 17F
上面是google到的中文簡介sort的網頁, 看您有沒有需要XD
06/22 22:28, 17F

06/23 00:53, , 18F
這個應該就直接用Radix sort就解決吧~
06/23 00:53, 18F

06/23 00:55, , 19F

06/23 00:58, , 20F
詳細的說應該是將Radix sort想法應用上去~做法如v大後
06/23 00:58, 20F

06/23 00:58, , 21F
三句所說~
06/23 00:58, 21F

06/23 01:44, , 22F
作業自己做sort 工作請用qsort兩次 即可
06/23 01:44, 22F

06/23 01:53, , 23F
int sortBy(const char *pL, const char *pR){
06/23 01:53, 23F

06/23 01:53, , 24F
return pL[0]*100+pL[1] - pR[0]*100+pR[1];
06/23 01:53, 24F

06/23 01:53, , 25F
} //end
06/23 01:53, 25F

06/23 13:06, , 26F
利用(字母 x 數值) 遞增排序
06/23 13:06, 26F

06/23 13:07, , 27F
耶...好像不行
06/23 13:07, 27F
文章代碼(AID): #1AFuWmsp (C_and_CPP)
討論串 (同標題文章)
以下文章回應了本文
3
6
完整討論串 (本文為第 1 之 6 篇):
5
23
1
1
3
6
2
27
文章代碼(AID): #1AFuWmsp (C_and_CPP)