多關鍵字排序
乙個長方形有長和寬,分別設為 a 和 b,現在想對一些長方形進行排序。
有一種新的排序方法。如下:
我們按照兩個長方形的a-b值來對他們按降序排序,如果有重複,按照b值公升序排序,如果還有重複,按照輸入的順序排序。
也就是說,是多關鍵字排序:
第1關鍵字,a-b,降序;
第2關鍵字,b,公升序;
第3關鍵字,輸入的順序,公升序;
輸入有多組測試資料(大概100組),每一組測試資料第一行先給出乙個整數n,代表有n個長方形需要被排序。
長方形被從0到n−1標號。
接下來n行,每一含有兩個整數代表每乙個長方形a和b
第i行描述長方形i−1的資訊。
處理到檔案末尾。
所有整數都在[1,100]的範圍內。
對於每乙個資料,在一行中輸出排好序之後的長方形id,注意每兩個 id 【之間!】有乙個空格,其他地方不要有多餘空格
sample input:
2100 1
1 23
100 50
3 41 2
sample output:
0 10 2 1
思路:定義結構體,裡面儲存對應長方形的三個關鍵字。
注意題目中多組測試資料的輸入方法。
對於多關鍵字排序,也就是基數排序,需要編寫對應的cmp函式。
注意sort函式的用法:sort(begin,end,compare)
#include
#include
#include
using
namespace std;
struct code
arr[
10000];
bool
compare
(code m,code n)
intmain()
sort
(arr,arr+n,compare)
;for
(int i=
0;i1;i++
) cout<.i<<
" ";
printf
("%d\n"
,arr[n-1]
.i);
}return0;
}
lintcode多關鍵字排序
給定 n 個學生的學號 從 1 到 n 編號 以及他們的考試成績,表示為 學號,考試成績 請將這些學生按考試成績降序排序,若考試成績相同,則按學號公升序排序。使用sort方法,先對item0排序,再對item1排序,優先順序越高的排序越後做 class solution param array th...
成績排序 多關鍵字
題目描述 用一維陣列儲存學號和成績,然後,按成績排序輸出。輸入描述 輸入第一行包括乙個整數n 1 n 100 代表學生的個數。接下來的n行每行包括兩個整數p和q,分別代表每個學生的學號和成績。輸出描述 按照學生的成績從小到大進行排序,並將排序後的學生資訊列印出來。如果學生的成績相同,則按照學號的大小...
多關鍵字的分組排序
首先說下order by order by asc是公升序 一般預設是公升序 降序的話是order by desc 如果我們想按照指定的字段順序來排列怎麼做呢 有乙個表t 以下是select from t id name country 1 a tw 2 b jp 3 c us 4 d jp 5 e...