大家都知道,快速排序是不穩定的排序方法。
如果對於陣列中出現的任意a[i],a[j](i
input
本題目包含多組輸入,請處理到檔案結束。
對於每組資料,第一行有乙個正整數n(0
output
對於每組資料,如果演算法是正確並且穩定的,就在一行裡面輸出"right"。如果演算法是正確的但不是穩定的,就在一行裡面輸出"not stable",並且在下面輸出正確穩定排序的列表,格式同輸入。如果該演算法是錯誤的,就在一行裡面輸出"error",並且在下面輸出正確穩定排序的列表,格式同輸入。
注意,本題目不考慮該排序演算法是錯誤的,但結果是正確的這樣的意外情況。
sample input
3aa 10
bb 10
cc 20
cc 20
bb 10
aa 10
3aa 10
bb 10
cc 20
cc 20
aa 10
bb 10
3aa 10
bb 10
cc 20
aa 10
bb 10
cc 20
sample output
not stable
cc 20
aa 10
bb 10
right
error
cc 20
aa 10
bb 10
題解:把資料位置記錄下來,如果相同把先出現的排前面
#include#include#include#includeusing namespace std;
struct stup[500+5],q[500+5];
bool cmp(stu x, stu y)
return x.score > y.score;
}int main()
for(int i=0; i> q[i].score;
} sort(p,p+t,cmp);
bool flag1=0,flag2=0; //標記排序是否符合穩定排序的要求
for(int i=0; i
E 穩定排序(sort 結構體)
e 穩定排序 sort 結構體 time limit 1000ms memory limit 32768kb 64bit io format i64d i64u submit status description 大家都知道,快速排序是不穩定的排序方法。如果對於陣列中出現的任意a i aj,其中a ...
穩定排序和非穩定排序
首先,排序演算法的穩定性大家應該都知道,通俗地講就是能保證排序前2個相等的數其在序列的前後位置順序和排序後它們兩個的前後位置順序相同。在簡單形式化一下,如果ai aj,ai原來在位置前,排序後ai還是要在aj位置前。其次,說一下穩定性的好處。排序演算法如果是穩定的,那麼從乙個鍵上排序,然後再從另乙個...
排序 穩定排序和不穩定排序
這幾天筆試了好幾次了,連續碰到乙個關於常見排序演算法穩定性判別的問題,往往還是多選,對於我以及和我一樣拿不準的同學可不是乙個能輕易下結論的題目,當然如果你筆試之前已經記住了資料結構書上哪些是穩定的,哪些不是穩定的,做起來應該可以輕鬆搞定。本文是針對老是記不住這個或者想真正明白到底為什麼是穩定或者不穩...