算法笔记

算法

什么是算法?解决一个问题需要执行的有限的、确定的、可行的指令。

什么是问题?

可计算问题?用计算机可以解决的问题。

不可计算问题,制造永动机、设计程序查杀所有计算机病毒等。

多项式时间可解问题

排序,2SAT,2顶点着色问题

六个基本的NP完全问题

SAT, 3SAT, 3DM, Vertex Covering, Hamilton cycle, Partition

算法设计策略

贪婪,分而治之,动态规划

多项式时间算法:在输入规模为x的情况下,算法能够在O(x^k) 时间(k为常数)内解决该问题。

伪多项式时间算法:算法的时间复杂度是输入数据大小的多项式时间表达,但却是输入数据长度(输入规模)的指数时间表达。

例如,背包问题的动态规划算法,素数判定算法。

如果一个NPC问题存在伪多项式时间算法,那么称其为Weakly NP-Complete。否则,称为Strongly NP-Complete.

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容