一、實驗目的
了解多關鍵字的使用範圍;編寫程式實現多關鍵字的排序。
二、實驗原理
依次根據某位進行排序,排好序後更新a[i],最後得到的就是根據每位排好序的
a[i]
lsdsort()函式:
cnt陣列用來存放某位的個數,
tmp陣列存放
a[i]
資料,根據
cnt[ ]
中的資料得到
tmp中存放哪乙個
a[i]
三、參考程式
#include
#include
#define radix 101 //基數,分數有 101 種可能
#define k 3 //關鍵字,有 3 個關鍵字
struct tagmark
a[8] = , , , , , ,
, };
/*a:待排序的陣列位址
size:元素數量
radix:基數
k:關鍵字數量
*/ voidlsdsort(struct tagmark *a, int size, int radix, int k)
//把a[i]按照某一位排好的序,重新排序
for (i = size; i > 0; ) }
free(cnt);
free(tmp);
}int main()
lintcode多關鍵字排序
給定 n 個學生的學號 從 1 到 n 編號 以及他們的考試成績,表示為 學號,考試成績 請將這些學生按考試成績降序排序,若考試成績相同,則按學號公升序排序。使用sort方法,先對item0排序,再對item1排序,優先順序越高的排序越後做 class solution param array th...
成績排序 多關鍵字
題目描述 用一維陣列儲存學號和成績,然後,按成績排序輸出。輸入描述 輸入第一行包括乙個整數n 1 n 100 代表學生的個數。接下來的n行每行包括兩個整數p和q,分別代表每個學生的學號和成績。輸出描述 按照學生的成績從小到大進行排序,並將排序後的學生資訊列印出來。如果學生的成績相同,則按照學號的大小...
多關鍵字排序。c
多關鍵字排序 乙個長方形有長和寬,分別設為 a 和 b,現在想對一些長方形進行排序。有一種新的排序方法。如下 我們按照兩個長方形的a b值來對他們按降序排序,如果有重複,按照b值公升序排序,如果還有重複,按照輸入的順序排序。也就是說,是多關鍵字排序 第1關鍵字,a b,降序 第2關鍵字,b,公升序 ...