資料結構 多關鍵字排序

2021-08-14 05:52:50 字數 851 閱讀 4707

一、實驗目的

了解多關鍵字的使用範圍;編寫程式實現多關鍵字的排序。

二、實驗原理

依次根據某位進行排序,排好序後更新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,公升序 ...