qsort的簡單用法

2021-10-19 08:56:29 字數 1317 閱讀 5674

c語言中可以通過呼叫qsort排序函式,來實現對於一組資料進行排序,之前沒有用過,所以總結一下qsort的簡單使用

qsort函式包含於標頭檔案當中

void

qsort

(void

*ptr, size_t count, size_t size,

(int

*comp)

(const

void*,

const

void*)

);

(1)ptr為指向待排序資料的指標

(2)count為待排序資料的數量(個數)

(3)size為待排序的單個資料的資料大小

(4)comp為比較函式,通過傳入要比較的兩個元素進行比較,函式中自定義比較規則最後確立排序之後元素的排列次序

兩個引數(設為a, b)的比較結果有三種可能::

a > b 返回正整數值

a == b 返回0

a < b 返回負整數值

思考:執行比較操作,實際上執行了cmp指令,兩個運算元顛倒順序進行相減得到乙個比較後的邏輯值

s1 > s2 ⇒ cmp s1, s2 (s2 - s1)

1、對整型陣列進行排序

#include

int arr[n]

;int

comp_int

(const

void

*a,const

void

*b)qsort

(arr, n,

sizeof

(int

), comp_int)

;

2、對一組字串按字典序進行排序

#include

char str[n][21

];intcomp_string

(const

void

*a,const

void

*b)qsort

(str, n,

21, comp_string)

;

1、比較函式中傳遞的引數,必須保證執行比較函式前後一致,所以傳遞的是const指標

2、比較函式引數為const void *,要進行元素進行的比較,需要轉換成對應型別的指標或者值

mysql的簡單用法 mysql簡單用法

刪除使用者 drop user jack drop比delete刪除的優勢在於drop可以刪除使用者的許可權,更加徹底 更改使用者名稱 rename user jack to jacknew 使用者的都存在與user表中,更改名稱,許可權不變 更改使用者密碼 update mysql.user se...

sudo的簡單用法

sudo 的簡單用法 sudo 是linux 下一種能讓普通使用者執行 root 使用者或者其他使用者的命令 在 linux 中為了能方便的作業系統,同事也為了減輕管理員的負擔,這裡就有了 sudo 這個工具,讓普通使用者能執行 root 使用者的一部分權利。在 linux unix 下專門為 su...

XPath的簡單用法

xpath 使用路徑表示式來選取 xml 文件中的節點或節點集。下面使用乙個簡單的xml檔案內容 定位到節點名稱為parent1的元素 xpath為 tree parent1 其中前面加 表示根元素,此時的xpath就是絕對路徑了,在這裡的例子中,因為tree為根元素,所以這裡的xpath也可以表示...