ACM C 穩定排序

2021-08-02 02:58:44 字數 998 閱讀 4027

給出二元陣列a[maxn][2],按第乙個關鍵值從小到大排序後輸出,要求第一關鍵值相同情況下不改變原陣列次序

每組資料第一行為整數n,1 <= n <= 10 ^ 5。

接下來n行每行兩個整數空格隔開。

輸出排序後的陣列

3

2 41 0

2 33

4 20 4

0 2

1 0

2 42 3

0 40 2

4 2

自帶的sort函式確實不穩定,自己寫的都是答案錯誤,借鑑別人的,加個新引數,才變成穩定排序。
#include

#include

#include

#include

#include

#include

#include

#define

lllong

long

#define

n100005

using

namespace

std;

struct

nodearr[n];

int

cmp(node

x,node

y)

int

main()

sort(arr,arr+n,cmp);

for(i=0;iprintf("%d

%d\n",arr[i].fir,arr[i].sec);

}

return

0;

}

穩定排序和非穩定排序

首先,排序演算法的穩定性大家應該都知道,通俗地講就是能保證排序前2個相等的數其在序列的前後位置順序和排序後它們兩個的前後位置順序相同。在簡單形式化一下,如果ai aj,ai原來在位置前,排序後ai還是要在aj位置前。其次,說一下穩定性的好處。排序演算法如果是穩定的,那麼從乙個鍵上排序,然後再從另乙個...

排序 穩定排序和不穩定排序

這幾天筆試了好幾次了,連續碰到乙個關於常見排序演算法穩定性判別的問題,往往還是多選,對於我以及和我一樣拿不準的同學可不是乙個能輕易下結論的題目,當然如果你筆試之前已經記住了資料結構書上哪些是穩定的,哪些不是穩定的,做起來應該可以輕鬆搞定。本文是針對老是記不住這個或者想真正明白到底為什麼是穩定或者不穩...

穩定排序和不穩定排序

這幾天筆試了好幾 次了,連續碰到乙個關於常見排序演算法穩定性判別的問題,往往還是多選,對於我以及和我一樣拿不準的同學可不是乙個能輕易下結論的題目,當然如果你筆試之前 已經記住了資料結構書上哪些是穩定的,哪些不是穩定的,做起來應該可以輕鬆搞定。本文是針對老是記不住這個或者想真正明白到底為什麼是穩定或者...