C sort函式使用總結

2021-09-06 21:14:19 字數 967 閱讀 5474

標頭檔案:algorithm

對於(整數/字元)陣列進行比較時,可直接通過sort(a,a+n)或sort(a.begin(),a.end())進行排序,預設公升序排列,須要高速實現降序時,有三種方案

1.反轉公升序陣列(reserve函式)

2.反向迭代sort(a.rend(),a.rbegin())

3.借助c++庫函式,greater《型別》()降序       less《型別》()公升序     標頭檔案:functional

當對結構體進行排序時,須要自己寫比較函式,曾了解qsort的都知道,c中的qsort排序函式寫起來比較麻煩,由於傳入的型別是const void * ,函式內部還須要進行強制轉換,而sort僅僅需正常傳入資料進行比較就可以。

eg:

#include#include#include#include#include#includeusing namespace std;

typedef struct nodenode;

node s[10];\

int cmp(node a,node b)

{if(a.x!=b.x)return a.x

當對字串陣列進行排序時,能夠利用c中的strcmp返回自己定義函式結果。

對於string,其能夠如同陣列一樣使用,但不能利用c字串函式,可使用c++標準庫字串函式。

除了,結構體,字串陣列,sort函式都能夠利用c++標準函式實現高速排序,包含pair,vector等型別,未來掌握的更加完好了再繼續本文總結。

補:當我們從0到n-1向陣列中輸入資料時,排序時sort(a,a+n),當我們須要對當中的部分排序時,僅僅須要sort(a+x,a+n),x>=0(0時是全排序)排序後的結果將以a+x為起點存入。

當我們從1到n向陣列中輸入資料時,排序時sort(a+1,a+n+1),當我們須要對當中的部分排序時,僅僅須要sort(a+x,a+n+1),x>=1,排序後的結果將以a+x為起點存入。

c sort函式總結

sort函式經常在演算法題中被使用,這裡對其用法進行總結 一 需要使用標頭檔案 include和using namespace std 二 語法 sort begin,end,cmp cmp引數可以省略,預設按公升序排序。1 begin是要排序的陣列的起始位址。2 end是最後一位要排序的位址。3 ...

c sort函式的使用

需要標頭檔案 語法描述 sort begin,end,cmp cmp引數可以沒有,如果沒有預設非降序排序。1.以int為例的基本資料型別的sort使用 include include includeusing namespace std int main 預設公升序 sort a,a 5 for i...

C sort函式的使用

我們在程式設計中經常會遇到排序的問題,排序演算法有很多,如氣泡排序,快速排序等,但通常我們只想得到排序的結果,而不用注重排序的過程,這時可以使用c 的sort函式,簡化排序過程,更注重 邏輯。標頭檔案 include using namespace std 函式格式 cmp函式的編寫 按結構體屬性大...