1. 程式人生 > 其它 >泛型演算法:部分排序演算法partial_sort()、partial_sort_copy()

泛型演算法:部分排序演算法partial_sort()、partial_sort_copy()

技術標籤:c++標準庫中的演算法

1、partial_sort()對部分個數元素進行排序並移到序列前面

#define debug qDebug()<<
int main(int argc, char *argv[])
{
    QVector<int> vec{ 3,2,5,4,1,6,9,7};
    std::partial_sort(vec.begin(), vec.begin() + 4, vec.end());
    debug vec;
}

預設是升序排列,可以理解為從整個序列取出了最小的4個數放到最前面,剩下的保持著相對的順序不變。

還有自定義排序規則的版本,不綴訴。

2、partial_sort_copy()部分排序後不影響原序列,將部分排序的結果複製到另一個序列

#define debug qDebug()<<
int main(int argc, char *argv[])
{
    QVector<int> vec{3,2,5,4,1,6,9,7};
    QVector<int> vec2;
    vec2.resize(7);
    std::partial_sort_copy(vec.begin(), vec.begin() + 7,vec2.begin(),vec2.end());
    debug vec2;
}

相對於取出前面7個數進行了排序,並將排序結果複製到另一個序列。

還有自定義排序規則的版本,不綴訴。