Re: 雙層排序問題

看板C_and_CPP (C/C++)作者 (喲)時間16年前 (2009/06/23 13:36), 編輯推噓3(303)
留言6則, 4人參與, 最新討論串2/6 (看更多)
※ 引述《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

06/23 13:50, , 1F
compare function 改一改, qsort 一次即可
06/23 13:50, 1F

06/23 17:41, , 2F
推樓上的作法
06/23 17:41, 2F

06/24 01:32, , 3F
單純用 一次qsort的話 BROYG..的index要寫死
06/24 01:32, 3F

06/24 01:33, , 4F
but如果要用文字先排的話 就要先bsearch出prior再qsort.
06/24 01:33, 4F

06/24 12:00, , 5F
現在弄八個 array 也一樣是寫死. 當然是 compare func
06/24 12:00, 5F

06/24 12:00, , 6F
寫清楚比較好懂
06/24 12:00, 6F
文章代碼(AID): #1AG6dV9h (C_and_CPP)
討論串 (同標題文章)
本文引述了以下文章的的內容:
2
27
以下文章回應了本文 (最舊先):
1
1
完整討論串 (本文為第 2 之 6 篇):
5
23
1
1
3
6
2
27
文章代碼(AID): #1AG6dV9h (C_and_CPP)