qsort模拟实现

//第一次尝试:
#include<stdio.h> #include<stdlib.h> typedef void(*CMP)(int*, int*); CMP Bubbup(int* m, int* n) { if (*m > * n) { int t = 0; t = *m; *m = *n; *n = t; } } CMP Bubbdown(int* m, int* n) { if (*m < * n) { int t = 0; t = *m; *m = *n; *n = t; } } void BubbleSort(int* arr,int size,CMP cmp) { for (int i = 0; i < size; i++) { for (int j = 0; j < size - i; j++) { cmp(&arr[j], &arr[j + 1]); } } } int main() { int arr[10] = { 56,23,48,51,27,19,36,67,92,40 }; int size = sizeof(arr) / sizeof(arr[0])-1; for (int i = 0; i <= size; i++) { printf("%d ", arr[i]); }printf("\n"); //升序排序 BubbleSort(arr, size, Bubbup); for (int i = 0; i <= size; i++) { printf("%d ", arr[i]); }printf("\n"); //降序排序 BubbleSort(arr, size, Bubbdown); for (int i = 0; i <= size; i++) { printf("%d ", arr[i]); }printf("\n"); return 0; }
//使用函数指针,利用回调函数的机制,可以在一定的条件下,调用写好的函数,实现一定的功能
//1、定义一个函数(普通函数即可); 
//2、将此函数的地址注册给调用者; 
//3、特定的事件或条件发生时,调用者使用函数指针调用回调函数。 

 

上一篇:洛谷P1104 生日


下一篇:bugkuctf Easy_Re