首页 > 编程知识 正文

快速算法,哪个排序算法最有效

时间:2023-05-03 07:25:39 阅读:167860 作者:372

戴表是典型的在空间上变换时间的技巧,一般指事先计算好所有可能需要的结果,以后需要的时候可以直接查表获取。 打表的一般使用方法如下。

1、在程序中一次性计算出所有需要用到的结果,之后的查询直接取这些结果

这是最常用的用法,例如在需要查询大量Fibonacci数f(n )的问题上,每次从头计算非常费时间,显然会对q次查询产生o ) NQ )的时间复杂度。 如果预处理(即Fibonacci数全部预先计算并存在于数组中),则那么每次查询就只需O(1)的时间复杂度对于q次查询需要o(nq )的时间复杂度。 其中,o ) n )是预处理的时间。

2、在程序B中分一次或多次计算出所有需要用到的结果,手工把结果写在程序A的数组中,然后在程序A中就可以直接使用这些结果

这样的使用方法通常是在程序的某些过程中小号的时间过多或者想不出好的算法,所以在其他程序中使用暴力算法计算出结果,然后直接在源程序中使用这些结果。 例如,在n-quean问题中,如果没有使用充分的算法就容易超时,但是对于所有的n来说,如果在本地用程序计算解决n-quean问题的方案数量,并将计算结果原样卸载到数组中,则直接从根据问题输入的n中得到结果

3、对一些感觉不会做的题目,先用暴力程序计算小范围数据的结果,然后找规律,或许就能发现一些“蛛丝马迹”

当数据范围非常大时,这种用法很有用。 因为,这样的主题不能用直接考虑的算法来解决,而是需要寻找一些规律才能得到结果。

自转: https://www.cn blogs.com/hxtblogs/p/7654635.html

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。