- 博客(15)
- 收藏
- 关注
原创 算法导论学习笔记(五)计算几何之最远点对
利用凸包的定义,可以确定最远点对一定包含于凸包点集中,所有先利用graham’s scan算法求出凸包点集,然后利用旋转卡壳,求出最远距离。
2016-09-16 20:06:35
600
原创 算法导论学习笔记(五)计算机几何之最近点对
暴力搜索所有点对的距离,时间复杂度为O(n^2),在数据规模较为庞大的情况下,并不能很好的运行。 以下将利用分治的方法,将时间复杂度降为O(n (lg n)^2 )。
2016-09-16 15:24:11
294
原创 算法导论学习笔记(四)图论之最小生成树
最小生成树是指在一个连通图中,有一个边集,使得这个边集覆盖所有点,且边的权值最小,则这个边集称为最小生成树。 算法的核心思想是贪心。
2016-08-25 14:51:56
382
原创 算法导论学习笔记(一)排序算法之堆排序
堆数据结构就像它的名字一样,如同一座金字塔;堆可以被看作一棵近似的完全二叉树,且它需维持一个性质——在任何一个节点处,其权值均小于或均大于其子树节点。
2016-03-10 21:56:09
399
原创 算法导论学习笔记(一)排序算法之快速排序
快速排序算法用到了分治的思想,将大数组分为两个小数组,且使得一个小数组均比某个数小,而另一个小数组均比这个数大,然后将这两个小数组继续划分,直至不可再分。
2016-03-07 22:11:21
327
原创 算法导论学习笔记(一)排序算法之分治排序
分治顾名思义,就是分而治之。 即将大问题分化成小问题,然后其处理复杂度就会下降很多。“大事化小,小事化了”说的就是这个意思。 分治排序的核心思想是将两串已排序的数列进行合并。而为了使得这两串数列均为已排序数列,则将其再分为更小的两串已排序数列,再进行合并······ 合并部分 再进行合并时,由于这两串数列均以排序,所以可以看作两幅叠好的扑克牌,拿最上面的牌进行比较,将小的牌依次拿
2016-03-02 22:28:15
434
原创 算法导论学习笔记(一)排序算法之计数排序
基本思想对于一个数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
360
原创 算法导论学习笔记(一)排序算法之插入排序
插入排序是一种较为经典的排序算法,它的思想是将一个数插入到一组有序数列中,使得插入后的数列仍为有序数列。依据这一算法思想可以得出:在改数插入前和插入后,所在数列均为有序数组,所变化的只是数列的长度。 所以就产生了一个循环不变式:有序数列,插入新数,仍为有序数列,再插入……算法导论上列举了如下伪代码INSERTION-SORT(A) for j = 2 to A.length
2016-01-18 10:20:07
430
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人