excel可以對一組紀錄按任意指定列排序。現請編寫程式實現類似功能。
輸入格式:
輸入的第一行包含兩個正整數n(≤105) 和c,其中n是紀錄的條數,c是指定排序的列號。之後有 n行,每行包含一條學生紀錄。每條學生紀錄由學號(6位數字,保證沒有重複的學號)、姓名(不超過8位且不包含空格的字串)、成績([0, 100]內的整數)組成,相鄰屬性用1個空格隔開。
輸出格式:
在n行中輸出按要求排序後的結果,即:當c=1時,按學號遞增排序;當c=2時,按姓名的非遞減字典序排序;當c=3時,按成績的非遞減排序。當若干學生具有相同姓名或者相同成績時,則按他們的學號遞增排序。
輸入樣例:
3 1000007 james 85
000010 amy 90
000001 zoe 60
輸出樣例:
000001 zoe 60
000007 james 85
000010 amy 90
先說乙個部分正確部分超時的自己寫的快排的改變
}然後再說乙個不超時的演算法,
用了c++的庫函式,但是不知道為什麼不超時…
#include
using
namespace std;
int c;
struct node
;struct node a[
101000];
bool
cmp(node a,node b)
else
if(c==3)
}int
main()
sort
(a+1
,a+n+
1,cmp)
;for
(i=1
;i<=n;i++
)printf
("%s %s %d\n"
,a[i]
.s,a[i]
.b,a[i]
.data)
;return0;
}
5 3 模擬EXCEL排序 25分
excel可以對一組紀錄按任意指定列排序。現請編寫程式實現類似功能。輸入的第一行包含兩個正整數n n le 10 5 1 0 5 和c c,其中n n是紀錄的條數,c c是指定排序的列號。之後有 n n行,每行包含一條學生紀錄。每條學生紀錄由學號 6位數字,保證沒有重複的學號 姓名 不超過8位且不包...
7 8 模擬EXCEL排序 (25 分)
excel可以對一組紀錄按任意指定列排序。現請編寫程式實現類似功能。輸入的第一行包含兩個正整數n 10 5 和c,其中n是紀錄的條數,c是指定排序的列號。之後有 n行,每行包含一條學生紀錄。每條學生紀錄由學號 6位數字,保證沒有重複的學號 姓名 不超過8位且不包含空格的字串 成績 0,100 內的整...
7 9 模擬EXCEL排序 (25 分
excel可以對一組紀錄按任意指定列排序。現請編寫程式實現類似功能。輸入的第一行包含兩個正整數n 10 5 和c,其中n是紀錄的條數,c是指定排序的列號。之後有 n行,每行包含一條學生紀錄。每條學生紀錄由學號 6位數字,保證沒有重複的學號 姓名 不超過8位且不包含空格的字串 成績 0,100 內的整...