请教单片机择优选择数据的问题

2020-02-02 09:26发布

例如,有10组数据,5、20、30、40、50、60、70、80、90、100,然后输入的数据是26,如何最方便的找到与26最接近的数据(25)?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
15条回答
devcang
1楼-- · 2020-02-02 23:23
langbaiyue 发表于 2012-11-7 15:57
排序的方法倒也想过,但是再往后处理的时候比较麻烦

还没解释25哪来的。

不排序,就从头找到尾,记住最近的。如果相邻,就看情况取了,如 1,3,6,...,如果输入2,那你要看着办了。
langbaiyue
2楼-- · 2020-02-02 23:45
 精彩回答 2  元偷偷看……
devcang
3楼-- · 2020-02-03 01:06
langbaiyue 发表于 2012-11-9 09:06
其实这是一款控制器产品,25是我需要的数值,意思就是从一堆数据里可以组合可以不组合找到与25最接近的数 ...

只是列表中没25。
jiangshui_642
4楼-- · 2020-02-03 06:39
如果楼主的被查数据“5、20、30、40、50、60、70、80、90、100”,永远是从小到大这么有规律的话,那就好做了
用2分查找法,即,当前输入的26,然后就先与当前数组的1/2处元素比,发现26处于数组的前1/2个元素中,然后再用26和数组前1/2的1/2处数据比较,。。。。。。。,最后再求绝对差就发现26最近的数是30
jswd0810
5楼-- · 2020-02-03 08:45
jiangshui_642 发表于 2012-11-9 12:54
如果楼主的被查数据“5、20、30、40、50、60、70、80、90、100”,永远是从小到大这么有规律的话,那就好做 ...

楼上说的不错,这种的话效率应该可以的
asdf1776
6楼-- · 2020-02-03 12:08
这还不简单?
26/5*5即可,结果就是25
如果你的意思是5的倍数的一组数的话

一周热门 更多>