Coursera:Algorithms
yao_hust_iAC
这个作者很懒,什么都没留下…
展开
-
Algorithm Part I:Union-Find
1.动态联通性问题描述: 有N个元素,开始时我们让每一个元素肚子构成一个集合。然后按一定的顺序将属于同一组中的元素合并,构成新的集合。其间要反复查询某个元素在哪个集合中。如下所示:解决办法:(1)Quick-Find声明一个长度为N的数组id,数组中元素的值代表它所属组的编号。将数组中的元素初始化为每个元素的索引值,这样就表示开始时每个元素各自构成一个独立的集合原创 2014-09-21 15:30:21 · 5135 阅读 · 1 评论 -
Algorithm Part I:Programming Assignment(2)
问题描述:Programming Assignment 2: Randomized Queues and DequesWrite a generic data type for a deque and a randomized queue. The goal of this assignment is to implement elementary data structures原创 2014-09-22 21:55:50 · 3440 阅读 · 1 评论 -
Algorithm Part I:Merge Sort
1.归并排序的思想2.归并排序的具体实现3.归并排序的改进:(1)当递归到一定程度,数组已经足够小时(length(2)当较小的那部分数值的最大值>=较大部分的最小值时,则直接返回,不对这两部分数组进行合并。4.归并排序的变形—buttom up merge sort基本思路:(1)设length=2。依次遍历数组原创 2014-09-23 13:58:10 · 854 阅读 · 0 评论 -
Algorithm Part I:Elementary Sorts
1.选择排序的实现2.插入排序的实现3.shell排序的实现 注意代码中h值的选取。4.shuffling(随机算法)问题描述:给定一组元素个数为N数组i,随机的重新安排每个元素的位置,要求每个元素出现在各个位置上的概率相等。解(1):思路:声明一个长度为N的double类型的数组j,生成N个随机变量依次赋给j中的元原创 2014-09-22 12:18:14 · 1134 阅读 · 0 评论 -
Algorithm Part I:Quick Sort
1.快速排序的基本思想2.快速排序的实现3.快速排序的改进(1)当递归到子集元素小于一定数目(如10)时,直接进行插入排序。(2)每次取轴点时,尽量保证其靠近median。4.快速排序的应用(1)找集合中的第K小数。5.集合中有很多元素时的快速排序当集合中有很多元素时,快速排序的原创 2014-09-23 22:30:30 · 800 阅读 · 0 评论 -
Algorithm Part I:Programming Assignment(3)
问题描述:Programming Assignment 3: Pattern RecognitionWrite a program to recognize line patterns in a given set of points.Computer vision involves analyzing patterns in visual images and recon原创 2014-09-28 15:13:25 · 4916 阅读 · 0 评论 -
Algorithm Part I:Queues,Stacks
1.stack的LinkList实现。2.stack的数组实现3.stack的可变数组实现4.Queue的LinkList实现5.Queue的可变数组实现思路原创 2014-09-21 22:01:20 · 923 阅读 · 0 评论 -
Algorithm Part I:Priority Queues
1.binary heap的实现BinaryHeap.h#ifndef BINARYHEAP_H#define BINARYHEAP_Hclass BinaryHeap{ public: BinaryHeap(int N); bool isEmpty(); void exchange(int i,int j);原创 2014-10-08 13:06:57 · 758 阅读 · 0 评论