创建电子商务网站的7个步骤,ui设计师个人优势,河北网站排名,iis8.5 wordpress实现功能描述如下: 自定义一个通用的数据结构,可定义 u8 u16 u32 float 等多种数据类型,参考C通用库的 qsort 函数若数组有序,直接调用接口实现二分查找可实现单个数据有序插入数组,并查找可实现数组中数据的删除C语言标准库函数qsort(快速排序函数) 目录 1. 二分查找算… 实现功能描述如下: 自定义一个通用的数据结构,可定义 u8 u16 u32 float 等多种数据类型,参考C通用库的 qsort 函数若数组有序,直接调用接口实现二分查找可实现单个数据有序插入数组,并查找可实现数组中数据的删除 C语言标准库函数qsort(快速排序函数) 目录 1. 二分查找算法原理2.函数接口3.代码实现4. 接口使用 1. 二分查找算法原理
不做介绍
2.函数接口
/* === Binary Search ====== Binary Search ====== Binary Search === */
/* === Binary Search ====== Binary Search ====== Binary Search === */
/* === Binary Search ====== Binary Search ====== Binary Search === */typedef struct {uint16_t curNum; // 数组的长度uint16_t elemSize; // 数据数据类型的大小,u8=1 u16=2 u32=4void *elemArr; // 指向数组地址/*** return as follows,用户提供* 0 when *elemPtr1 *elemPtr2* = 0 when *elemPtr1 == *elemPtr2* 0 when *elemPtr1 *elemPtr2*/int16_t (*compare)(const void *elemPtr1, const void *elemPtr2);
} BinarySearch_T;// 以下三个函数接口返回值
// 成功:返回 数组索引 失败:返回 0xffff
uint16_t BinSch_GetPos(const void *elem, const BinarySearch_T *info); // 获取元素在数组中的位置
uint16_t BinSch_InsertElem(const void *elem, BinarySearch_T *info) ; // 数组中升序插入元素
uint16_t BinSch_DeleteElem(const void *elem, BinarySearch_T *info) ; // 数组中删除元素void con_test_binary_search(); // 测试函数3.代码实现
// 获取元素在数组中索引号
static uint16_t BinSch_GetRawPos(const void *elem, const BinarySearch_T *info) {uint16_t Lpos = 0U, Rpos = info-curNum, len = info-curNum;uint16_t Mpos = Lpos + (uint16_t)((Rpos - Lpos) 1U)