小工具知识网

当前位置: 首页 > 行业知识 > C++ Sort函数详解

行业知识

C++ Sort函数详解

2026-10-26 16:39:43 来源:互联网转载

C++ Sort���数详解

前言 :sort函数是algorithm库下的一个函数,sort函数是不稳定的,即大小相同的元素在排序后相对顺序可能发生改变,如果某些场景需要保持相同元素间的相对顺序,可使用stable_sort函数,这里不过多介绍。

一、sort函数调用的两种方式

方式一(默认)void sort (RandomAccessIterator first, RandomAccessIterator last);
方式二(自定义)void sort (RandomAccessIterator first, RandomAccessIterator last, Compare comp);
  • 默认: 两个参数first,last,将[first, last)区间内元素升序排列。【注意区间为左闭右开】

  • 自定义排序: 需用户指定排序规则Compare comp,将 [first, last)区间内的元素按照用户指定的顺序排列。

    二、sort函数使用场景

    由于在排序过程中涉及到元素交换等操作,所以sort函数仅支持可随机访问的容器,如数组, string、vector、deque等。

    三、sort函数排序原理

    ​ sort()并非只是普通的快速排序,除了对普通的快速排序进行优化,它还结合了插入排序和堆排序。根据不同的数量级别以及不同情况,能自动选用合适的排序方法。当数据量较大时采用快速排序,分段递归。一旦分段后的数据量小于某个阀值,为避免递归调用带来过大的额外负荷,便会改用插入排序。而如果递归层次过深,有出现最坏情况的倾向,还会改用堆排序。

    ​ 所以无论元素初始时为何种状态,sort()的平均排序复杂度为均为O(N*log2(N)) ,具有不错的的性能,在刷算法题时,可以直接使用sort()来对数据进行排序,而不需手动编写排序函数。

    四、sort函数使用案例

    1.升序排列

    sort函数如果不传入第三个参数,则默认是升序排列。

    #include#includeusing namespace std;int main() {    // 方式一、使用数组    int a[10] = {9, 6, 3, 8, 5, 2, 7, 4, 1, 0};    sort(a, a + 10);  // 10为元素个数    for (int i = 0; i 

上一篇:Win10搜索框使用秘籍,快速查找,轻松操作!

下一篇:JDK21 API 中文版来了