看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《aoaay (低調奢華簡約時尚)》之銘言: : 不好意思 小弟新手 : 最近遇到一個問題 : 問題如下: : 若英文字母的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 : 該如何寫 請板上大大教一下 給個方向 謝謝 先根據數字 quick sort,得 L 11, W 15, R 23, Y 55, R 56, G 56, O 72, O 78, B 81, W 89, P 98, B 99. 然後以英文字為 radix, 做 radix sort. 做 radix sort 是有多少數目要準備多少槽. 像你的例子, radix 有 BROYGLPW 八項,就要準備八個陣列. 將上面排序的數字,由小 到大,依序將每一項目放進八個槽中. 得 B R O Y G L P W 81 99 23 56 72 78 55 56 11 98 15 89 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.160.113.220
ledia:compare function 改一改, qsort 一次即可 06/23 13:50
joefaq:推樓上的作法 06/23 17:41
softwind:單純用 一次qsort的話 BROYG..的index要寫死 06/24 01:32
softwind:but如果要用文字先排的話 就要先bsearch出prior再qsort. 06/24 01:33
adrianshum:現在弄八個 array 也一樣是寫死. 當然是 compare func 06/24 12:00
adrianshum:寫清楚比較好懂 06/24 12:00