題目:
有n個考場,每個考場有若干數量的考生。現在給出各個考場中的考生的准考證號與分數,要求所有考生按照考生分數從高到低排序,並按順序輸出所有考生的准考證號,排名,考場號以及考場內排名。
思路:在student結構體型別中存放題目資訊(准考證號,分數,考場號,考場內排名)
分數不相同時,按照分數從大到小排,否則按照學號從小到大排序
**:#include
#include
#include
using namespace std;
struct studentstu[30010];
bool cmp(student a, student b)
int main()
sort(stu+num-k, stu+num, cmp); //將該考場的考生排序
stu[num-k].local_rank = 1; //該考場第1名的local_rank記為1
for(int j=num-k+1; jif(stu[j].score == stu[j-1].score) //如果與前一位考生同分
else}}
printf("%d\n", num); //輸出總考生數
sort(stu, stu+num, cmp); //將所有考生排名
int r=1; //當前考生排名
for(int i=0; i
printf("%s", stu[i].id);
printf("%d%d%d\n", r,stu[i].location_number, stu[i].local_rank);
}return 0;
}
STL庫中快排sort函式詳解
使用 include using namespace std 作用 排序 時間複雜度 n lg n 實現原理 sort並不是簡單的快速排序,它對普通的快速排序進行了優化,此外,它還結合了插入排序和推排序。系統會根據你的資料形式和資料量自動選擇合適的排序方法,這並不是說它每次排序只選擇一種方法,它是在...
sort演算法函式排序示例
include include include include using namespace std 自己定義的比較函式,sort預設按照運算子 的關係從小到大進行排序。通過定義自己的比較函式,可以定義 自己想要的 關係 並在滿足這種關係時,返回true。比較函式的輸入引數為待比較的物件。bool...
STL學習筆記之sort演算法
stl所提供的各式各樣的演算法中,sort 是最複雜龐大的乙個。這個演算法接受兩個隨機訪問迭代器,然後將區間內的所有元素以漸增方式由小到大重新排列。還有個版本則允許使用者指定乙個仿函式,作為排序標準。stl中的所有關係型容器都擁有自動排序功能,所以不需要sort演算法。序列式容器中的stack,de...