sort和qsort的用法

2021-07-04 05:34:33 字數 1068 閱讀 3242

好吧,承認知識匱乏,一直都是手打快排的,才知道有這個函式~~

必須要科普一下。

msdn中的定義:

template

voidsort(ranit first, ranit last); //--> 1)

template

voidsort(ranit first, ranit last, pred pr); //--> 2)

標頭檔案:

#include

using namespace std;

1.預設的sort函式是按公升序排。對應於1)

sort(a,a+n); //兩個引數分別為待排序陣列的首位址和尾位址

2.可以自己寫乙個cmp函式,按特定意圖進行排序。對應於2)

例如:int cmp( const int &a, const int &b )

sort(a,a+n,cmp);

是對陣列a降序排序

又如:int cmp( const point &a, const point &b )

else

return 0;

}sort(a,a+n,cmp);

是先按x公升序排序,若x值相等則按y公升序排

與此類似的還有c中的qsort,以下同附上qsort的使用方法:

#include

格式 qsort(array_name,data_number,sizeof(data_type),compare_function_name) (void*)bsearch (pointer_to_key_word,array_name,find_number,

sizeof(data_type),compare_function_name)

e.g.

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

qsort(data,n,sizeof(int),cmp); // 對int型陣列進行快速排序(非降序排列)

p=(int*)bsearch(&a,data,n,sizeof(int),cmp);

sort和qsort函式的用法

stl裡有個sort函式,可以直接對陣列排序,複雜度為n log2 n 使用這個函式,需要包含標頭檔案 include 這個函式可以傳兩個引數或三個引數。第乙個引數是要排序的 區間首位址 第二個引數是區間 尾位址的下一位址 也就是說,排序的區間是 a,b 簡單來說,有乙個陣列int a 100 要對...

sort和qsort函式的用法

做acm 題的時候,排序是一種經常要用到的操作。如果每次都自己寫個冒泡之類的o n 2 排序,不但程式容易超時,而且浪費寶貴的比賽時間,還很有可能寫錯。stl裡面有個sort函式,可以直接對陣列排序,複雜度為n log2 n 使用這個函式,需要包含標頭檔案 include 這個函式可以傳兩個引數或三...

qsort和sort函式用法區別

區別 sort是qsort的公升級版,如果能用sort盡量用sort,使用也比較簡單,不像qsort還得自己去寫 cmp 函式,只要註明 使用的庫函式就可以使用,引數只有兩個 如果是普通用法 頭指標和尾指標 預設sort排序後是公升序,如果想讓他降序排列,可以使用自己編的cmp函式 bool com...