坚持再坚持 发表于 2023-7-27 14:13:35

使用if--else if--else判断数值区间的优化

数值区间:A=,两个数值之间的间隔很小,并且间隔是无序的。单片机检测到数据B,需要判断B属于在A区间的哪个范围内,请问除了最简单的多个if-else if-else if.........else方法,还有其它有效的算法吗?谢谢解答!!

庄永 发表于 2023-7-27 17:52:31

二分法

坚持再坚持 发表于 2023-7-27 17:56:23

庄永 发表于 2023-7-27 17:52
二分法

数据间隔太小了,而且间隔是变化的。有的数据间隔为0.0001或是0.003

庄永 发表于 2023-7-27 18:03:54

坚持再坚持 发表于 2023-7-27 17:56
数据间隔太小了,而且间隔是变化的。有的数据间隔为0.0001或是0.003

多小都可以用二分法,小到最低精度就认为是相等的

Blake 发表于 2023-7-28 09:16:46

可以参考插入排序的方法试试,不过如果只是比较单片机检测到的一个数值在数组中的位置,估计二分法是最快的吧,不用遍历数组。

坚持再坚持 发表于 2023-7-28 13:47:40

Blake 发表于 2023-7-28 09:16
可以参考插入排序的方法试试,不过如果只是比较单片机检测到的一个数值在数组中的位置,估计二分法是最快的 ...

好的,谢谢
页: [1]
查看完整版本: 使用if--else if--else判断数值区间的优化