📜  在C++标准模板库(STL)中排序

📅  最后修改于: 2021-05-30 08:30:58             🧑  作者: Mango

排序是应用于数据的最基本功能之一。这意味着以特定的方式排列数据,可以增加或减少。 C++ STL中有一个内置函数,名称为sort()。
此函数在内部使用IntroSort。更详细地讲,它是使用QuickSort,HeapSort和InsertionSort的混合实现的。默认情况下,它使用QuickSort,但是如果QuickSort进行不公平的分区并且花费的时间超过N * logN,它将切换到HeapSort,并且当数组大小变得非常小时,它切换到InsertionSort。

排序的原型是:

sort(startaddress, endaddress)

startaddress: the address of the first 
              element of the array
endaddress: the address of the next 
            contiguous location of the 
            last element of the array.
So actually sort() sorts in the 
range of [startaddress,endaddress)
CPP
// C++ progrma to sort an array
#include 
#include 
 
using namespace std;
 
void show(int a[], int array_size)
{
    for (int i = 0; i < array_size; ++i)
        cout << a[i] << " ";
}
 
// Driver code
int main()
{
    int a[] = { 1, 5, 8, 9, 6, 7, 3, 4, 2, 0 };
   
    // size of the array
    int asize = sizeof(a) / sizeof(a[0]);
    cout << "The array before sorting is : \n";
   
    // print the array
    show(a, asize);
 
      // sort the array
    sort(a, a + asize);
 
    cout << "\n\nThe array after sorting is :\n";
   
    // print the array after sorting
    show(a, asize);
 
    return 0;
}


输出
The array before sorting is : 
1 5 8 9 6 7 3 4 2 0 

The array after sorting is :
0 1 2 3 4 5 6 7 8 9 

有关更多详细信息,请参考std :: sort()。

要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程”