![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Algorithm
文章平均质量分 72
Parle
这个作者很懒,什么都没留下…
展开
-
P问题、NP问题、NPC问题
1. 算法时间复杂度时间复杂度并不是表示一个程序解决问题需要花多少时间,而是当问题规模扩大后,程序需要的时间长度增长得有多快。常见复杂度:不管数据有多大,程序处理花的时间始终是那么多的,我们就说这个程序很好,具有O(1)的时间复杂度,也称常数级复杂度;数据规模变得有多大,花的时间也跟着变得有多长,这个程序的时间复杂度就是O(n),比如找n个数中的最大值;二叉树、二分原创 2016-05-16 11:26:04 · 690 阅读 · 0 评论 -
KMP字符串匹配
经典的字符串匹配算法,原理什么的网上一堆,主要是记录一下代码,有些忘了…..原理摸我// KMP算法要点:// // 移动位数 = 已匹配的字符数 - 对应的部分匹配值// // 部分匹配值就是一个字符串"s0s1s2.....sn"(已匹配的字符构成)的前缀和后缀的最长共有元素的长度// // 先求目标子串的匹配值表, 然后进行匹配, 匹配过程中, 根据匹配值表和已匹配字符数来移动原创 2016-09-09 11:51:14 · 468 阅读 · 0 评论 -
排列组合算法
排列和组合是两种不同的算法,排列所求的k个数,数的排序不同则为一种不同情况,总共有k!中可能情况求全排列最常用的算法就是按照字典式排序(STL),字典式排序从第一位开始找最小的数,然后依次找每一位能够存在的最小的数(和已存在的排列不重复),主要步骤如下(以123456为例):第一个数是每一位能取到的最小的数,也就是123456从第二个数开始就按照以下算法来寻找: 在上一个排列中, 找到最后一个原创 2016-10-21 13:45:41 · 1834 阅读 · 1 评论