精靈魔法 歸併排序

2022-03-19 19:12:31 字數 984 閱讀 6765

今天放假了,尋思著在洛谷上把任務計畫裡的題都弄清楚,但無意間看了一眼老姚部落格,直接多了四道題,還是先看看考試題吧(又是上不去題庫的一天)

input

output

sample input

3

1 2 3

2 1 3

sample output

1
hint又是廢話超多的一道題(不是)~~

一句話題意:給了先後位置,給了各自速度,求反超數。

一眼看上去就想跑暴力,兩重迴圈列舉,效率o(n^2),但是不用提交也知道會爆,不然就太太太太水了

key:用到了乙個思路很巧妙的排序方法——歸併排序

關於歸併排序

去借鑑(扒)了一下老姚以前的部落格

不要問我是不是扒的

#include#include#include#includeusing namespace std;

typedef long long ll;

inline int read()

while(ch>='0'&&ch<='9') s=s*10+ch-'0',ch=getchar();

return s*w;

}const int maxn=1e5+5,inf=0x3f3f3f;

struct node{

ll pos,v;

bool operator

return pos髮量成功減0.5%

順便吼一句:高考加油,衡中必勝!

歸併排序(2 路歸併排序)

遞迴寫法 include define maxn 100 void merge int a,int l1,int r1,int l2,int r2 將陣列a的區間 l1,r1 和區間 l2,r2 合併為乙個有序區間 else while i r1 while j r2 for int i 0 i非遞...

python歸併排序 python 歸併排序

排序思路 1.將陣列分成兩組a,b,建立臨時陣列 c,c長度 a b 2.i,j分別屬於a,b 3.若a i b j 將b j 放入c,j 否則 a i 放入c,i 4.迴圈3步驟,將a或b中剩餘的元素放入c,再將c複製到陣列中 5.遞迴3 4直到a,b序列的長度 1 歸併排序 class merg...

排序 歸併排序

歸併 merge 排序法是將兩個 或兩個以上 有序表合併成乙個新的有序表,即把待排序序列分為若干個子串行,每個子串行是有序的。然後再把有序子串行合併為整體有序序列。歸併 將兩個已經排好序的集合合併到乙個集合眾,並且保證新的集合也是有序的。核心點 只有乙個元素的集合是已經排好序的集合。歸併排序是建立在...