詳細解說 STL 排序 Sort

2021-04-15 10:56:46 字數 647 閱讀 3905

從效率上看,以下幾種sort演算法的是乙個排序,效率由高到低(耗時由小變大):

partion

stable_partition

nth_element

partial_sort

sort

stable_sort

若需對vector, string, deque, 或 array容器進行全排序,你可選擇sort或stable_sort;

若只需對vector, string, deque, 或 array容器中取得top n的元素,部分排序partial_sort是首選.

若對於vector, string, deque, 或array容器,你需要找到第n個位置的元素或者你需要得到top n且不關係top n中的內部順序,nth_element是最理想的;

若你需要從標準序列容器或者array中把滿足某個條件或者不滿足某個條件的元素分開,你最好使用partition或stable_partition;

若使用的list容器,你可以直接使用partition和stable_partition演算法,你可以使用list::sort代替sort和stable_sort排序。若你需要得到partial_sort或nth_element的排序效果,你必須間接使用。正如上面介紹的有幾種方式可以選擇。  

詳細解說 STL 排序 Sort (三)

1.6 nth element 指定元素排序 nth element乙個容易看懂但解釋比較麻煩的排序。用例子說會更方便 班上有10個學生,我想知道分數排在倒數第4名的學生。如果要滿足上述需求,可以用sort排好序,然後取第4位 因為是由小到大排 更聰明的朋友會用partial sort,只排前4位,...

希爾排序詳細解說

了解了插入排序後,希爾排序就可以迎刃而解了 可以將整個陣列分為gap組,這裡的gap array.length 2,然後進行插入排序,再將gap 2,再次進行插入排序,直到gap 1的時候,就可以得到最終的已排序陣列 1.資料量少的時候,速度快 2.資料接近有序的時候,速度快 時間複雜度 最好 o ...

選擇排序詳細解說

選擇排序是每一次從無序區間選出最大 或最小 的乙個元素,存放在無序區間的bound位置,直到全部待排序的資料元 素排完 本文章中以公升序為例,讓已排序的序列中的最後乙個元素為bound,讓cur初始值為bound 1 就是未排序的第乙個元素 然後和bound位置的值進行比較,如果bound位置的元素...