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