7 1 模擬EXCEL排序 25分

2021-10-09 10:42:46 字數 2063 閱讀 1073

excel可以對一組紀錄按任意指定列排序。現請編寫程式實現類似功能。

輸入格式:

輸入的第一行包含兩個正整數n(≤10​5​​) 和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 內的整...