C 中的sort 排序函式用法

2022-08-10 03:33:09 字數 784 閱讀 3216

sort(first_pointer,first_pointer+n,cmp)

該函式可以給陣列,或者鍊錶list、向量排序。

實現原理:sort並不是簡單的快速排序,它對普通的快速排序進行了優化,此外,它還結合了插入排序和推排序。系統會根據你的資料形式和資料量自動選擇合適的排序方法,這並不是說它每次排序只選擇一種方法,它是在一次完整排序中不同的情況選用不同方法,比如給乙個資料量較大的陣列排序,開始採用快速排序,分段遞迴,分段之後每一段的資料量達到乙個較小值後它就不繼續往下遞迴,而是選擇插入排序,如果遞迴的太深,他會選擇推排序。

此函式有3個引數:

引數3:預設可以不填,如果不填sort會預設按陣列公升序排序。也就是1,2,3,4排序。也可以自定義乙個排序函式,改排序方式為降序什麼的,也就是4,3,2,1這樣。

使用此函式需先包含:

#include

並且匯出命名空間:

using namespace std;

簡單例子:對陣列a的0~n-1元素進行公升序排序,只要寫sort(a,a+n)即可;對於向量v也一樣,sort(v.begin(),v.end())即可。

自己編寫排序規則函式

例如:bool compare(int a,int b)

sort擴充套件

sort不只是能像上面那樣簡單的使用,我們可以對sort進行擴充套件,關鍵就在於第三個引數方法一:定義比較函式(最常用)

//情況一:陣列排列

int a[100];

bool cmp1(int a,int b)//int為陣列資料型別

參考文獻:

C 中的sort 排序函式用法

原文章 中的sort 排序函式用法m p 10183210.html sort first pointer,first pointer n,cmp 該函式可以給陣列,或者鍊錶list 向量排序。實現原理 sort並不是簡單的快速排序,它對普通的快速排序進行了優化,此外,它還結合了插入排序和推排序。系...

C 中sort 排序函式的用法

sort first pointer,first pointer n,cmp 該函式可以給陣列,或者鍊錶list 向量排序。實現原理 sort並不是簡單的快速排序,它對普通的快速排序進行了優化,此外,它還結合了插入排序和推排序。系統會根據你的資料形式和資料量自動選擇合適的排序方法,這並不是說它每次排...

C 中sort排序函式的原理用法

sort函式可以用來給指定區間內的資料按照某種規則排序,在這裡貼一下sort函式的 templateinline void sort ranit first,ranit last,pr pred 能夠看出該函式是經過多層呼叫的,再深層次就不貼了大家可以開啟 庫看。使用時預設情況下是兩個引數,例如 v...