使用查找表优化
我为一个程序制作了一些c代码,它对声音数据做了一些心理声学。
有一段代码运行得非常慢。
我认为最好使用查找表。如何实施呢?
任何指针或帮助将不胜感激! :)
没有找到相关结果
已邀请:
4 个回复
癸痊醒
(我的例子假设你想要省略第一个案例)。
浮凰量
查找将是:
这是一个足够小的值,数组的大小不会过高。在程序开头用循环初始化。
磐乓铝举
是否小于该值。如果是这样,请移动到光标左侧的中间位置,然后重试。如果没有,请向右移动。继续前进,直到找到所需的值,然后使用它。 您的数组可以是具有最小值和相应的
值的结构。 编辑:要清除可能的误解,“每个可能的值”我并不是指-1400到1400之间的每个数字,只是您在原始代码中检查的值。
筷啸够对铅
假设您的值为-601。 是< = 0?是的,所以
你永远不会到达-600。如此有效,所有负值都是
。这可能是也可能不是设计,但如果是,你可以摆脱所有其他负面价值。 否则,我会考虑将其减少到一个公式(尽可能少的分支)或者使用@ Ebomike的预计算查找表和二进制搜索的解决方案。