有 n 個元素,編號 1,2..n,每一對元素之間的大小關係是確定的,關係具有反對稱性,但不具有傳遞性。
注意:不存在兩個元素大小相等的情況。
也就是說,元素的大小關係是 n 個點與 n×(n−1)/2 條有向邊構成的任意有向圖。
然而,這是一道互動式試題,這些關係不能一次性得知,你必須通過不超過 10000 次提問來獲取資訊,每次提問只能了解某兩個元素之間的關係。
現在請你把這 n 個元素排成一行,使得每個元素都小於右邊與它相鄰的元素。
你可以通過我們預設的 bool 函式 compare 來獲得兩個元素之間的大小關係。
例如,編號為 a 和 b 的兩個元素,如果元素 a 小於元素 b,則 compare(a,b) 返回 true,否則返回 false。
將 n 個元素排好序後,把他們的編號以陣列的形式輸出,如果答案不唯一,則輸出任意乙個均可。
// forward declaration of compare api.
// bool compare(int a, int b);
// return bool means whether a is less than b.
class solution
};
sol:我們考慮歸併排序合併兩個有序序列的過程,可以保證每個元素前後的約束都得到滿足。
但如果使用快速排序,我們可以保證基準數比它前面的數大、比它後面的數小,但無法保證它前面的數小於它後面的數。
因此可以用歸併排序
class solution
};
AcWing 113 特殊排序
題目描述 有n個元素,編號1.2.n,每一對元素之間的大小關係是確定的,關係不具有傳遞性。也就是說,元素的大小關係是n個點與n n 1 2條有向邊構成的任意有向圖。然而,這是一道互動式試題,這些關係不能一次性得知,你必須通過不超過10000次提問來獲取資訊,每次提問只能了解某兩個元素之間的關係。現在...
C 實驗11 3 結構排序
題目描述 有n名學生,每個學生的屬性包括姓名與總成績。已知學生的姓名與總成績,你的任務是將學生的資訊按照以下方式排序 首先比較總成績,總成績高的在前面,總成績低的在後面,當總成績相同時,你要比較學生的姓名,姓名字典序小的同學在前面,姓名字典序大的同學在後面 ascii碼順序 n的範圍是1 100 學...
1925 特殊排序
時間限制 1 sec 記憶體限制 32 mb 提交 536 解決 191 提交 狀態 討論版 命題人 外部匯入 輸入一系列整數,將其中最大的數挑出,並將剩下的數進行排序。輸入第一行包括1個整數n,1 n 1000,代表輸入資料的個數。接下來的一行有n個整數。可能有多組測試資料,對於每組資料,第一行輸...