一个组合计算的算法求助
给定一个数(姑且称之为参照数),在一系列数中,找出若干个(数量不定),以这若干个数的算术和与参照数差的绝对值最小为计算目标。
目前我使用的算法是对这若干个数进行全组合,计算出组合的和后,再同参照数逐一计算差的绝对值,可以算出来,但由于这种算法的时间复杂度是O(2^n),因此只要要查找的数列的个数大于24个后,计算时间需要很长,失去实际意义,请高手帮忙看看是否有更加好的算法。
先谢谢!
[解决办法]
楼主,这类问题建议到到数据结构与算法,或者C/C++、VC版本去问。
在Office版块您很难得到答案。
时间复杂度达到O(2^n)。不过单纯从你上面说的看,是必须组合的,那么时间复杂度很难降下来。而且你这里或许还需要考虑一下空间复杂度。