sort與qsort對比解析

2021-07-27 14:01:16 字數 745 閱讀 2397

1.sort函式為c++內建函式:

sort(buffer,buffer+n,cmp); buffer為待排序陣列的首位址,buffer+n為待排序陣列的最後乙個資料的位址。cmp為自定義的排序規則函式,sort()函式預設是為公升序排列,允許排序型別包括數值/字元/字串。sort()也可以對結構體進行排序。

cmp函式的返回值為true和false或1和0,若為true/1,則sort()函式為公升序排列,若為false/0,則sort()函式為降序排列。

對結構體函式stu按自定義規則排序:

bool cmp(stu a,stu b)

sort(buf,buf+n,cmp);//main函式呼叫sort;

2.qsort為c語言函式

qsort(陣列名,陣列長度,陣列中每個元素大小,com);

此處cmp是指:指向函式的指標

int num[100];

int cmp ( const void *a , const void *b )

qsort(num,100,sizeof(num[0]),cmp);

sort函式是c++中標準模板庫的的函式,在qsort()上已經進行了優化,根據情況的不同可以採用不同的演算法,所以較快。在同樣的元素較多和同樣的比較條件下,sort()的執行速度都比qsort()要快。另外,sort()是類屬函式,可以用於比較任何容器,任何元素,任何條件。使用時需呼叫algorithm>

qsort與sort的區別

qsort有四個引數,必須都有,而且返回值大於0則交換,小於等於0則不動.這點跟布林型不一樣,而sort返回值就是嚴格的布林型,不過為真就是不交換,為假則交換.所以兩者不同,當然兩者還有其他不同,但是大家應該知道,所以不一一枚舉,要注意的就是這兩者的返回值是不一樣的.親測有效.include inc...

qsort與sort的區別

sort預設的是公升序排序 return a b 從小到大 qsort使用return int a int b 是從小到大 1 cmp函式和qsort中cmp函式的不同 int cmp const int a,const int b sort中的cmp函式引數可以直接是參與比較的引用型別。2 cmp...

qsort和sort學習與比較

1.qsort函式 原 型 void qsort void base,int nelem,int width,int fcmp const void const void 功 能 使用快速排序例程進行排序 參 數 1 待排序陣列首位址 2 陣列中待排序元素數量 3 各元素的占用空間大小 4 指向函式...