当前位置: 首页 > article >正文

【C语言 采集数据 精简排序】

这里写自定义目录标题

  • ‌qsort函数
    • 新的改变

‌qsort函数

‌qsort函数是C语言标准库中的一个排序函数,定义在头文件stdlib.h中。‌ qsort函数可以对任意类型的数组进行排序,其通用性和灵活性使其成为C语言中常用的排序工具。

新的改变

/**
***********************************************************
* @brief 算术平均滤波
* @param arr,数组首地址
* @param len,元素个数
* @return 平均运算结果
***********************************************************
*/
static uint16_t ArithAvgFltr(uint16_t *arr, uint32_t len)
{
	uint32_t sum = 0;
	for (uint32_t i = 0; i < len; i++)
	{
		sum += arr[i];
	}
	return (uint16_t)(sum / len);
}

/**
***********************************************************
* @brief qsort函数调用的回调函数,比较规则,降序排列
* @param *_a,对应数组元素
* @param *_b,对应数组元素
* @return 比较结果
***********************************************************
*/
static int32_t CmpCb(const void *_a, const void *_b)
{
	uint16_t *a = (uint16_t *)_a;
	uint16_t *b = (uint16_t *)_b;
	int32_t val = 0;
	 if (*a > *b)
	 {
		val = -1;
	 }
	 else if (*a < *b)
	 {
		val =  1;
	 }
	 else
	 {
		val = 0;
	 }
	 return val;
}

/**
***********************************************************
* @brief 中位值平均滤波
* @param arr,数组首地址
* @param len,元素个数,需要大于等于3个
* @return 平均运算结果
***********************************************************
*/
static uint16_t MedianAvgFltr(uint16_t *arr, uint32_t len)
{
	qsort(arr, len, sizeof(uint16_t), CmpCb);
	return ArithAvgFltr(&arr[1], len - 2);
}

static void PushDataToBuf(uint16_t adcVal)
{
	static uint16_t s_index = 0;
	g_adcVal[s_index] = adcVal; 
	s_index++;
	s_index %= MAX_BUF_SIZE;
}

http://www.kler.cn/a/464433.html

相关文章:

  • 以往博客的复习补充——part1
  • SQL把字符串按逗号分割成记录
  • Go语言性能优化-字符串格式化优化
  • 5大常见高并发限流算法选型浅析
  • Flutter Android修改应用名称、应用图片、应用启动画面
  • MarkDown怎么转pdf;Mark Text怎么使用;
  • 数字化转型 · OCR 技术如何打破效率瓶颈?
  • SpringMVC(六)拦截器
  • 栈及栈的操作
  • 【three.js】材质(Material)
  • 《探寻真正开源的大模型:开启AI创新新纪元》
  • 5.微服务灰度发布落地实践(rocketmq增强)
  • Win11电脑Cursor默认打开markdown文件,如何修改markdown文件默认打开方式为Typora?
  • (四)配置有线网口、SSH登陆、文件传输以及运行交叉编译程序测试
  • SQL SERVER ——表的基本操作
  • 系统思考—信任
  • 解决安装pynini和WeTextProcessing报错问题
  • git 添加代理
  • 云手机:虚拟技术的革命性应用与实体手机的优劣对比
  • 小米PK霍尼韦尔宠物空气净化器谁更强?还有其他专业品牌吗?
  • 《燕云十六声》游戏文件tcj.dll已损坏怎么办?
  • XCode如何知道所打开源码文件的路径
  • 关于Spring的专项面试试题总结
  • DAY196-vpc1-小迪安全
  • HarmonyOS NEXT 应用开发练习:智能视频推荐
  • pdf预览兼容问题- chrome浏览器105及一下预览不了