stable-sort

    4熱度

    3回答

    考慮n表示標記牌爲紅色或藍色 i=1; j=n; while(i<n) { if(a[i]==RED) i++; if(a[j]==BLUE) j--; swap(a[i],a[j]); } 如何使這個原地算法穩定,我能得到一個爲O(n^2)解決問

    5熱度

    1回答

    如何穩定地對數組進行排序?我想要排序的值可能有很多重複項,我不確定ruby使用哪種排序算法。我認爲插入排序對我來說效果最好。 例子: a = [[:a, 0], [:b, 1], [:c, 0], [:d, 0]] a.sort_by {|x,y| y} # => [[:a, 0], [:d, 0], [:c, 0], [:b, 1]] 尋找 [[:a, 0], [:c, 0], [:d,

    4熱度

    2回答

    爲什麼stable_sort需要複製構造函數? (swap應該就夠了吧?) 或者說,我該如何stable_sort一個範圍沒有複製任何元素? #include <algorithm> class Person { Person(Person const &); // Disable copying public: Person() : age(0) { } i

    0熱度

    1回答

    我試圖使用stable_sort將一個向量指針 排序到某個類。我有一個這樣的代碼: #include <iostream> #include <vector> #include <algorithm> using namespace std; class B { public : B(int y, int j) {x = y, r = j;}; v

    3熱度

    1回答

    鑑於Ñ元件的陣列,有一個排序算法, 排序在至多爲O(n log n)的時間(並且可選地,O(n)的時間最好情況) 是穩定 需要O(1)若干輔助空間 鋁升排序算法我發現滿足只有兩個這些標準: 冒泡排序滿足2和3只 合併排序滿足1和2只 堆排序滿足1和3 是否有一個滿足所有三個標準的算法?

    19熱度

    4回答

    我想知道爲什麼heapsort不穩定。 我已經使用了這個,但沒有找到一個好的,直觀的解釋。 我明白穩定排序的重要性 - 它允許我們根據多個關鍵字進行排序,這可能非常有益(例如,進行多次排序,每次排序都基於不同的關鍵字,因爲每種排序都會保留相對關係元素的順序,先前的排序可以加起來給出按多個標準排序的元素的最終列表)。 但是,爲什麼不會保存這個呢? 感謝您的幫助!

    0熱度

    4回答

    我遇到了這種麻煩。我有一個包含這樣的值的數組: array = [ {SortTime : 123456, Operation : Assigning}, {SortTime : 4567 , Operation: Assigning}, {SortTime : 123456 , Operation: Assigned} ]; 所以,如果我比較數組[0]和數組[2]我想保持順序,使我以前的「已

    2熱度

    1回答

    我想知道穩定排序會產生巨大影響的情況。 以前的JAVA版本對collections.sor API進行合併排序,對Array.sort進行穩定排序時,使用了quicksort。 Java的當前版本使用Tim Sort,它又是一個穩定的排序。 所以現在如果你會看到大多數流行的語言,比如Python,Java,Scala都在使用Tim Sort。我想知道Tim Sort在使用中的穩定排序有多重要。 推

    4熱度

    2回答

    所以,實際上我需要的是在排序後保留舊數組的索引。因此,例如,如果我輸入[2,4,1,5,7,9,6]則輸出爲[2,0,1,3,6,4,5]。我已經使用qsort,如果沒有重複的元素,它會很好地工作。 如果有重複的元素,有時第一個重複元素放在最後。例如,如果輸入是[5,4,6,5,2,1,3],我想要輸出的是[5,4,6,1,0,3,2]。所以,5索引0之前提出5索引3。但是,使用qsort有時會輸

    1熱度

    2回答

    與一般的快速排序算法不同,我可以使用額外的數組來執行穩定的快速排序。我知道如何隨機選擇分區和相應的分區,但我無法弄清楚如何使用附加數組來使其穩定。