我为一个程序编写了一些 C 代码,该程序对声音数据进行一些心理声学分析。
有一段代码运行速度非常慢。
我认为最好使用查找表。如何实现它?
任何指示或帮助将不胜感激! :)
最佳答案
你们的值(value)观不是等距的,所以这并不容易。但它仍然是可能的:取所有条件值的最大公约数(这里是 50),然后制作表格
字节输出= lut[差异/50 + 12];
在查找表中,您可以仅使用发布顺序中的值,在其中复制条目,以防您的步长为 100。
顺便说一句,你看,有一个错误,你所有的负面案例都被你的第一个 <=0
捕获了。 (我的示例假设您要省略第一种情况)。
关于c - 使用查找表进行优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5543022/