
算法导论学习笔记
隐藏在画中的落叶
这个作者很懒,什么都没留下…
展开
-
算法导论学习笔记(一)排序算法之插入排序
插入排序是一种较为经典的排序算法,它的思想是将一个数插入到一组有序数列中,使得插入后的数列仍为有序数列。依据这一算法思想可以得出:在改数插入前和插入后,所在数列均为有序数组,所变化的只是数列的长度。 所以就产生了一个循环不变式:有序数列,插入新数,仍为有序数列,再插入……算法导论上列举了如下伪代码INSERTION-SORT(A) for j = 2 to A.length原创 2016-01-18 10:20:07 · 433 阅读 · 0 评论 -
算法导论学习笔记(五)计算几何之最远点对
利用凸包的定义,可以确定最远点对一定包含于凸包点集中,所有先利用graham’s scan算法求出凸包点集,然后利用旋转卡壳,求出最远距离。原创 2016-09-16 20:06:35 · 600 阅读 · 0 评论 -
算法导论学习笔记(五)计算机几何之最近点对
暴力搜索所有点对的距离,时间复杂度为O(n^2),在数据规模较为庞大的情况下,并不能很好的运行。 以下将利用分治的方法,将时间复杂度降为O(n (lg n)^2 )。原创 2016-09-16 15:24:11 · 295 阅读 · 0 评论 -
算法导论学习笔记(五)计算几何之寻找凸包
定义:点集Q的凸包是一个最小的凸多边形P,满足Q中的每个点都在P的边界上或在P的内部。原创 2016-09-02 18:53:09 · 687 阅读 · 0 评论 -
算法导论学习笔记(三)红黑树
算法导论学习笔记(三)红黑树原创 2016-07-18 20:13:32 · 265 阅读 · 0 评论 -
算法导论学习笔记(二)分治策略之最大子数组
算法导论学习笔记(二)分治策略之最大子数组原创 2016-04-30 22:03:36 · 367 阅读 · 0 评论 -
算法导论学习笔记(一)排序算法之计数排序
基本思想对于一个数x,确定小于x的元素个数。 即找到n个比x小的数,那么x在数列中为第n+1小的数,则确定其排序位置。算导上的伪代码COUNTING-SORT(A,B,k)1 let C[0...k] be a new array2 for i = 0 to k3 C[i] = 04 for j = 1 to A.length5 C[A[j]] =原创 2016-02-29 21:54:44 · 361 阅读 · 0 评论 -
算法导论学习笔记(一)排序算法之堆排序
堆数据结构就像它的名字一样,如同一座金字塔;堆可以被看作一棵近似的完全二叉树,且它需维持一个性质——在任何一个节点处,其权值均小于或均大于其子树节点。原创 2016-03-10 21:56:09 · 400 阅读 · 0 评论 -
算法导论学习笔记(一)排序算法之快速排序
快速排序算法用到了分治的思想,将大数组分为两个小数组,且使得一个小数组均比某个数小,而另一个小数组均比这个数大,然后将这两个小数组继续划分,直至不可再分。原创 2016-03-07 22:11:21 · 328 阅读 · 0 评论 -
算法导论学习笔记(一)排序算法之分治排序
分治顾名思义,就是分而治之。 即将大问题分化成小问题,然后其处理复杂度就会下降很多。“大事化小,小事化了”说的就是这个意思。 分治排序的核心思想是将两串已排序的数列进行合并。而为了使得这两串数列均为已排序数列,则将其再分为更小的两串已排序数列,再进行合并······ 合并部分 再进行合并时,由于这两串数列均以排序,所以可以看作两幅叠好的扑克牌,拿最上面的牌进行比较,将小的牌依次拿原创 2016-03-02 22:28:15 · 437 阅读 · 0 评论 -
算法导论学习笔记(四)图论之最小生成树
最小生成树是指在一个连通图中,有一个边集,使得这个边集覆盖所有点,且边的权值最小,则这个边集称为最小生成树。 算法的核心思想是贪心。原创 2016-08-25 14:51:56 · 384 阅读 · 0 评论