c語言中可使用qsort函式對資料進行排序
qsort函式的使用
第乙個引數:待排序陣列的首元素位址
第二個引數:待排序陣列的元素個數
第三個引數:待排序陣列的每個元素的大小-單位是位元組
第四個引數:是函式指標,比較兩個元素的所用函式的位址-這個函式使用者自己實現
函式指標的兩個引數是:待比較的兩個元素的位址
整數排序
int
cmp_int
(const
void
* e1,
const
void
* e2)
void
test1()
;int sz =
sizeof
(arr)
/sizeof
(arr[0]
);qsort
(arr, sz,
sizeof
(arr[0]
), cmp_int)
;int i =0;
for(i =
0; i < sz; i++
)}
浮點數排序
int
cmp_float
(const
void
* e1,
const
void
* e2)
void
test2()
;int sz =
sizeof
(f)/
sizeof
(f[0])
;qsort
(f, sz,
sizeof
(f[0])
, cmp_float)
;int i =0;
for(i =
0; i < sz; i++
)}
結構體排序
struct stu
;int
cmp_stu_by_name
(const
void
* e1,
const
void
* e2)
intcmp_stu_by_age
(const
void
* e1,
const
void
* e2)
void
test3()
,,};
int sz =
sizeof
(s)/
sizeof
(s[0])
;//qsort(s, sz, sizeof(s[0]), cmp_stu_by_name);
qsort
(s, sz,
sizeof
(s[0])
, cmp_stu_by_age)
;}
qsort原理
void
swap
(char
*buff1,
char
*buff2,
int width)
}void
bubble_sort
(void
*base,
int sz,
int width,
int(
*cmp)
(void
*e1,
void
*e2))}
}}void
test()
;int sz =
sizeof
(arr)
/sizeof
(arr[0]
);bubble_sort
(arr, sz,
sizeof
(arr[0]
), cmp_int)
;int i =0;
for(i =
0; i < sz; i++)}
intmain()
C語言 氣泡排序 總結
氣泡排序.cpp 定義控制台應用程式的入口點。include stdafx.h include include define count 6 定義常量 int tmain int argc,tchar argv int i 0 int k 0 int c 0 for i 0 i while 0 c ...
C語言排序演算法 氣泡排序演算法
氣泡排序是一種交換排序,基本思想是 相鄰兩兩比較,若反序則交換。定義交換操作函式 1 void swap int p,int i,intj 2 基本排序演算法 思想 i 0時,p i 依次與後面的元素比較,如果後面的元素小,則交換位置,繼續比較,直到將最小的元素交換到第乙個位置,再從第二個開始與後面...
C語言 氣泡排序演算法
重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越大的元素會經由交換慢慢 浮 到數列的頂端,故名。void swap int a,int b int main int ...