C C 快速排序庫函式

2021-10-10 17:21:40 字數 2589 閱讀 1108

c++自定義比較函式

庫函式比較函式(命名空間std)

void qsort ( void * base, size_t num, size_t size, int ( * comparator ) ( const void *, const void * ) );
#include
其中const void * a表示宣告了乙個常量指標 a,(int*)a指的是將常數指標 a強制轉化為整型指標 a,那麼再與前面加乙個*就表示取這個指標所指向位置的元素了。

#include#includeusing namespace std;

int a = ;

int compare(const void* a, const void* b);

int main()

return 0;

}int compare(const void* a, const void* b)//公升序

輸出:1 2 3 4

#include#includeusing namespace std;

char a[4] = , , };

int compare(const void* a, const void* b);

int main()

return 0;

}int compare(const void* a, const void* b)//公升序

輸出:abc bca cab

一般對陣列排序時,這個簡單,因為第三個引數"compare"函式可預設,預設為公升序排列。

#include
#include#includeusing namespace std;

int value = ;

bool compare(int a, int b);

int main()

return 0;

}

輸出:1 2 3 4 5

部分陣列排序

你還可以這麼玩:

#include#includeusing namespace std;

int value = ;

bool compare(int a, int b);

int main()

return 0;

}

輸出:5 1 2 3 4

#include#includeusing namespace std;

int value = ;

bool compare(int a, int b);

int main()

return 0;

}bool compare(int a, int b) //降序

輸出:5 4 3 2 1

降序排列

less《資料型別》()

greater《資料型別》()

字元型:

#include#includeusing namespace std;

char value = ;

int main()

return 0;

}

輸出:e d c b a

對結構體排序-自定義比較函式

#include#includeusing namespace std;

struct student

value[3];

bool compare(const student& a, const student& b);

int main()

; value[1] = ;

value[2] = ;

sort(value, value + 3, compare);

for ( i = 0; i < 3; i++)

return 0;

}bool compare(const student& a, const student& b)

else

}

輸出:

kite 10

mike 20

tom 15

對結構體排序-過載關係運算子

#include#includeusing namespace std;

struct student

else

}//簡單地說,和之前的 compare 函式相比,就是把當前「物件」看作 a 了

}value[3];

int main()

; value[1] = ;

value[2] = ;

sort(value, value + 3);

for ( i = 0; i < 3; i++)

return 0;

}

輸出:

kite 10

mike 20

tom 15

C C 數學庫函式

所在函式庫為math.h stdlib.h string.h float.h 1.絕對值 int abs int i 返回整型引數i的絕對值 double cabs struct complex znum 返回複數znum的絕對值 double fabs double x 返回雙精度引數x的絕對值 ...

使用VC庫函式中的快速排序函式

函式原型 void qsort void base,size t num,size t width,int cdecl compare const void const void 第乙個是陣列位址,第二是陣列大小,第三個是陣列中每個元素的位元組數,最後乙個是個函式指標,表示如何比較陣列中的元素。標頭...

使用VC庫函式中的快速排序函式

下面講下vc中庫函式qsort 的用法 函式原型 void qsort void base,size t num,size t width,int cdecl compare const void const void 第乙個是陣列位址,第二是陣列大小,第三個是陣列中每個元素的位元組數,最後乙個是個...