快速排序的題

2022-05-16 03:17:25 字數 1268 閱讀 8288

今天的上機考試雖然有實時的ranklist,但上面的排名只是根據完成的題數排序,沒有考慮 

每題的分值,所以並不是最後的排名。給定錄取分數線,請你寫程式找出最後通過分數線的 

考生,並將他們的成績按降序列印。 

測試輸入包含若干場考試的資訊。每場考試資訊的第1行給出考生人數n ( 0 < n 

< 1000 )、考題數m ( 0 < m < = 10 )、分數線(正整數)g;第2行排序給出第1題至第m題的正整數分值;以下n行,每行給出一 

名考生的准考證號(長度不超過20的字串)、該生解決的題目總數m、以及這m道題的題號 

(題目號由1到m)。 

當讀入的考生人數為0時,輸入結束,該場考試不予處理。 

對每場考試,首先在第1行輸出不低於分數線的考生人數n,隨後n行按分數從高 

到低輸出上線考生的考號與分數,其間用1空格分隔。若有多名考生分數相同,則按他們考 

號的公升序輸出。 

1 #include

2 #include

3struct acm

4 r[1000];

8int qsort(struct acm r,int l,int h)

9

21 r[l] = r[h];

2223

while(l < h && r[l].s >= key.s)

24

30 r[h] = r[l];

31 }

3233 r[l] = key;

34return l;

3536 }

37void sort(struct acm r,int l,int h)

38

46 }

47int main()

48

58for(i = 0;i59

68 }

69 sort(r,0,n-1);

70 k = 0;

71for(i=0;i72

76 printf("

%d\n

",k);

77for(i=0;i < k;i++)

78

8182 }

83return

0;

84 }

快速排序(模板題)

acwing 785 給定你乙個長度為n的整數數列。請你使用快速排序對這個數列按照從小到大進行排序。並將排好序的數列按順序輸出。輸入格式 輸入共兩行,第一行包含整數 n。第二行包含 n 個整數 所有整數均在1 109 範圍內 表示整個數列。輸出格式 輸出共一行,包含 n 個整數,表示排好序的數列。資...

每日一題 92 快速排序

題目來自網路 題目 1 基於陣列的快速排序 題目 2 基於鍊錶的快速排序 題目 1 基於陣列的快速排序 思路 使用分治的思想,先選擇樞軸,之後執行一次劃分,並把原序列劃分兩個子串行,之後遞迴處理。int partition int narr,int nstart,int nend narr nsta...

每日一題 快速排序 20091016

b 問題描述 b 請實現快速排序,並討論pivot對複雜度的影響。b 問題分析 b 快速排序是目前使用頻率較高的排序 當然,有時候為了偷懶就可以冒泡一下 很多參考書上對pivot的選擇就是選擇第乙個元素,但如果是乙個高度排序的序列的話,時間複雜度就會接近o n2 還不如直接用冒泡完成。所以選擇乙個合...