原文章: 中的sort()排序函式用法m/p/10183210.html
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 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...