qsort和sort函式用法區別

2021-06-29 11:50:25 字數 1485 閱讀 5227

區別

sort是qsort的公升級版,如果能用sort盡量用sort,使用也比較簡單,不像qsort還得自己去寫 cmp 函式,

只要註明  使用的庫函式就可以使用,引數只有兩個(如果是普通用法)頭指標和尾指標;

預設sort排序後是公升序,如果想讓他降序排列,可以使用自己編的cmp函式

bool compare(int a,int b)

sort(*a,*b,cmp);

sort 使用時得註明:using namespace std;   或直接打 std::sort()  還得加上  #include

#include#includeusing namespace std;

int main()

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

cmp);

二、對char型別陣列排序(同int型別)

char word[100];

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

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

三、對double型別陣列排序(特別要注意)

double in[100];

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

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

四、對結構體一級排序

struct in s[100]

//按照data的值從小到大將結構體排序,關於結構體內的排序關鍵資料data的型別可以很多種,

//參考上面的例子寫

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

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

五、對結構體二級排序

struct in s[100];

//按照x從小到大排序,當x相等時按照y從大到小排序

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

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

六、對字串進行排序

struct in s[100];

//按照結構體中字串str的字典順序排序

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

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

七、計算幾何中求凸包的cmp

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

//重點cmp函式,把除了1點外的所有點,旋轉角度排序

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 這個函式可以傳兩個引數或三...

sort和qsort的用法

好吧,承認知識匱乏,一直都是手打快排的,才知道有這個函式 必須要科普一下。msdn中的定義 template voidsort ranit first,ranit last 1 template voidsort ranit first,ranit last,pred pr 2 標頭檔案 inclu...