拓冰建站拓冰建站
首页 / 资讯中心 / 正文

冒泡排序接口推荐写法

#include stdint.h typedef uint8_t UINT8; typedef UINT8 (*CmpFunc)(int*, int*); // 升序比较前后 需要交换 UINT8 Ascend(int *x, int *y) { return (*x *y) ? 1 : 0; } // 降序比较前后 需要交换 UINT8 Descend(int *x, int *y) { return (*x *y) ? 1 : 0; } // 冒泡排序函数指针参数改为自定义CmpFunc void Order(int *arr, int Len, CmpFunc cmp_func) { int i, j; int temp; // 交换临时变量局部就近定义 int swap_flag; // 本轮是否交换标记 for(i 0; i Len - 1; i) { swap_flag 0; // 每轮冒泡初始化为无交换 for(j 0; j Len - i - 1; j) { // 传入相邻元素地址进行比较 if(cmp_func(arr[j], arr[j1])) { temp arr[j]; arr[j] arr[j1]; arr[j1] temp; swap_flag 1; // 标记发生交换 } } // 本轮无交换数组已有序提前退出 if(swap_flag 0) break; } }参数中增加函数指针入参调用更方便避免接口内反复修改比较
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门