随笔分类 -  Algorithm

摘要:转自:http://blog.sina.com.cn/s/blog_5212bec30100o03y.html 你会经常看到网上出现“这怎么做,这不是NP问题吗”、“这个只有搜了,这已经被证明是NP问题了”之类的话。你要知道,大多数人此时所说的NP问题其实都是指的NPC问题。他们没有搞清楚NP问题和 阅读全文
posted @ 2017-06-01 09:39 Strawberry丶 阅读(382) 评论(0) 推荐(0) 编辑
摘要:算法的运行时间通常与下列函数成比例: log log N 可以看作是一个常数:即使N很多,两次去对数之后也会变得很小 阅读全文
posted @ 2017-04-24 20:25 Strawberry丶 阅读(853) 评论(0) 推荐(0) 编辑
摘要:http://www.cnblogs.com/v-July-v/archive/2012/03/22/2413055.html http://blog.csdn.net/v_july_v/article/details/6685962 Bit-map,例题 http://blog.csdn.net/ 阅读全文
posted @ 2017-04-23 14:47 Strawberry丶 阅读(184) 评论(0) 推荐(0) 编辑
摘要:查找:查询某个关键字是否在(数据元素集合)表中的过程。也称作检索。 主关键字:能够惟一区分各个不同数据元素的关键字 次关键字:通常不能惟一区分各个不同数据元素的关键字 查找成功:在数据元素集合中找到了要查找的数据元素 查找不成功:在数据元素集合中没有找到要查找的数据元素 静态查找:只查找,不改变数据 阅读全文
posted @ 2017-04-22 16:59 Strawberry丶 阅读(366) 评论(0) 推荐(0) 编辑
摘要:归并排序 【思想】 ·简单地将原始序列划分为两个子序列 ·分别对每个子序列递归排序 ·最后将排好序的子序列合并为一个有序序列,即归并过程 【特点】稳定 空间代价:O(n) 时间代价:O(nlogn) 注: ·尽管归并排序最坏比较次数比快速排序少,但它需要更多地元素移动,因此它在实用中不一定比快速排序 阅读全文
posted @ 2017-03-01 23:35 Strawberry丶 阅读(186) 评论(0) 推荐(0) 编辑
摘要:各种内排序方法的选择: 1.从时间复杂度选择 对元素个数较多的排序,可以选择快速排序、堆排序、归并排序;元素较少时,可以选择简单的排序方法。 2.从空间复杂度选择 尽量选择空间复杂度为O(1)的排序方法,其次选空间复杂度为O(logn)的快速排序方法,最后才选择空间复杂度为O(n)的二路归并排序方法 阅读全文
posted @ 2017-03-01 21:02 Strawberry丶 阅读(754) 评论(0) 推荐(0) 编辑
摘要:基数排序 【思想】基数排序属于“分配式排序”,分为高位优先法MSD和低位优先法LSD 低位优先法LSD: ·从最低位k0开始排序 ·对于排好的序列再用次低位k1排序 ·依次重复,直至对最高位kd-1排好序后,整个序列称为有序的 这是一个分、收;分、收;...;分、收的过程 【特点】稳定 空间复杂度: 阅读全文
posted @ 2017-03-01 21:01 Strawberry丶 阅读(451) 评论(0) 推荐(0) 编辑
摘要:1.直接选择排序 【思想】选出剩下的未排序数据中的最小元素与第i个元素交换 【特点】不稳定 空间代价:O(1) 时间代价:O(n^2) 2.堆排序 【思想】基于最大推来实现,效率更高。堆排序的基本思想是:首先将n个记录按关键码建成堆(初始堆),将堆顶元素与最后一个元素交换,然后将剩余的元素调整成堆. 阅读全文
posted @ 2017-03-01 20:54 Strawberry丶 阅读(205) 评论(0) 推荐(0) 编辑
摘要:1.冒泡排序 【思想】不停地比较相邻的记录,如果不满足排序要求就交换相邻数据,直到所有的记录都已经排好序 【特点】稳定 空间代价:O(1) 时间代价:O(n^2) -比较次数 -交换次数 ·最少:O(n) ·最少:0 ·最多:O(n^2) ·最多:O(n^2) 2.快速排序 【思想】基于分治法的排序 阅读全文
posted @ 2017-03-01 17:53 Strawberry丶 阅读(1980) 评论(0) 推荐(0) 编辑
摘要:1.直接插入排序 【思想】利用有序表的插入操作进行排序 有序表的插入:将一个记录插入到已排好序的有序表中,从而得到一个新的有序表 【特点】稳定 空间代价:O(1) 时间代价:O(n^2) 2.折半插入排序 【思想】 ·在插入第i个记录时,前面的记录已经是有序的了 ·可以用二分法查找第i个记录的正确位 阅读全文
posted @ 2017-03-01 16:40 Strawberry丶 阅读(328) 评论(0) 推荐(0) 编辑
摘要:【思路】要完成旋转共需两步 1.第一次x,y互换 s1[i][j]=s[j][i]1, 2, 3, 45, 6, 7, 89, 10,11,1213,14,15,16变成了1, 5, 9, 132, 6,10,143, 7,11,154, 8,12,16 然后x逆序 s2[i][j]=s1[n-i] 阅读全文
posted @ 2017-02-27 21:37 Strawberry丶 阅读(1197) 评论(0) 推荐(0) 编辑
摘要:在串T中查找是否有与串P相等的子串,则称串T为目标(Target),把P称为模式(Pattern)。 称查找模式在目标中的匹配位置的运算为模式匹配(Pattern matching)。 简单模式匹配算法BF算法 (又称古典的、经典的、朴素的、穷举的)带回溯,速度慢 【算法思想】 将主串T的第pos个 阅读全文
posted @ 2017-02-06 14:39 Strawberry丶 阅读(1090) 评论(0) 推荐(0) 编辑