重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
因為cmp在傳入qsort的時候遲碰是作為函數指針傳入的,qsort在調用cmp(就是“回調函數”)的時候團山會傳入合適的參數。
網站建設哪家好,找創新互聯建站!專注于網頁設計、網站建設、微信開發、小程序設計、集團企業網站建設等服務項目。為回饋新老客戶創新互聯還提供了安化免費建站歡迎大家使用!
*(int*)a是因為:a是個void *類型,塌旦中要先用(int*)將它轉成int*類型,然后再用*取值,變成int類型,才能比較大小。
1、cmp 是 compare,比較的縮寫。
2、strcmp是C語言中頭文件string.h(字符串函數)中定義的一個用于對兩組字符串進行比較的函數,它的返回值是int類型。
假設有兩組字符串cs和ct,當csct時,函數返回一個負數;當cs==ct時,函數返回0;當凱圓輪csct時,函數返回一個正數。
即:兩個字符串自左向右逐個字符相比(按ASCII值大小相比較),直到出現不同的字符或遇'\0'為止。如:"A""B" ,"a""腔者A" ,"computer""compare" ,"comput""comp"
strcmp函數原型為:盯信int strcmp(const char *s1,const char * s2);
在stdlib.h頭文件中。
有qsort()
//快速排序
qsort函數,也就是快速排悔遲序算法,在C的
庫中,需加入頭文件#include
或#include
。
調用qsort函數需要寫cmp比較檔前饑函數。
給出按升序排列的例子:
int
cmp(const
void*
a,
const
void*
b)//注意這里是int{return
(int*)a
-
(int*)b;}
調用:
qsort(a,
n,
sizeof(int),
cmp);//a為行返數組,n為個數
如果需要按照自己的意愿排列,那么同樣重寫cmp比較函數,就可以完成,和sort函數類似。時間復雜度為O(n
log
n),但是某些情況要比sort函數好。