先读题:别看题目长的要*,实际上就是让我们模拟比赛,两两比拼,实力强的就得分+1,最后排序为下一轮比赛确定人员
首先由于初始分数可能不是有序的,所以需要把它变成有序的
接着重复r轮,每轮两两比较,实力强的分数加一,比较完sort一下就行了
快排解法(对应algorithm的sort)
快排就是定义一个枢轴,让每个元素和枢轴比较,使左半边小于(大于)右半边,然后划分成两半。
最后细化到每个部分只代表一个元素,就可以使数组有序。
时间复杂度:O(nlogn * r)
运行时间:54ms
但是,这些得分很多都是相同的,一个一个交换可能有点麻烦,所以归并排序也许会更快……
归并解法(对应algorithm的stable_sort)
归并,和名字一样,分为归和并两个步骤
归:用二分法把无序数组划分成若干个有序数组
并:把两个有序数组合并成一个有序数组
具体过程请看下面↓
没错,就是把最前面的元素进行比较,哪个小(大)就拿出哪个放到另一个数组,然后把数组里的元素复制回去。
时间复杂度:O(nlogn * r)
运行时间:56……ms?
完了翻车了
咳咳,反正代码就是这些,看完点个赞,我先溜了(