
算法导论(算法实现与习题解答)
文章平均质量分 68
AndrewThompson
这个作者很懒,什么都没留下…
展开
-
算法导论 第22章 22.1-5
#includeusing namespace std;int N,M;//N为顶点,M为边,有向图typedef struct Gnode{ int index; struct Gnode*next;}Gnode;int main(){ scanf("%d %d",&N,&M); int i,j; int **area=new int*[N]; int **a原创 2016-04-17 09:51:44 · 581 阅读 · 0 评论 -
Exercise 2.2-2
#include#include#include#include#include#include#include#include#includeusing namespace std;void select(vector& arr){ for (int i = 0; i < arr.size()-1; i++){ int min_num = INT_MAX; int原创 2017-04-15 14:31:32 · 233 阅读 · 0 评论 -
算法导论 习题2.3-4(the implemention of insertion sort recursively)
#include#include#include#include#include#include#include#include#includeusing namespace std;void insert_recur(vector& arr,int start,int end){ if (start >= end) return; insert_recur(arr,st原创 2017-04-15 21:00:56 · 401 阅读 · 0 评论 -
算法导论 Exercise2.3-5(implement binary search iteratively)
#include#include#include#include#include#include#include#include#includeusing namespace std;int Binary_search(vector& arr,int element){ int start = 0; int end = arr.size()-1; while (star原创 2017-04-15 21:07:36 · 363 阅读 · 0 评论 -
算法导论 Exercise 2.3-5 (implement binary serach recursively)
#include#include#include#include#include#include#include#include#includeusing namespace std;int Binary_search(vector& arr,int element,int start,int end){ if (start > end) return -1; int m原创 2017-04-15 21:11:45 · 299 阅读 · 0 评论 -
算法导论(Exercise 2.3-6)
#include#include#include#include#include#include#include#include#includeusing namespace std;int Binary_search(vector& arr,int element,int start,int end){ int i = start; int j = end; int原创 2017-04-15 21:57:44 · 366 阅读 · 0 评论 -
Implement the merge sort
#include#include#include#include#include#include#include#include#includeusing namespace std;void Merge(vector& arr, int start, int mid, int end){ vector left; vector right; for (int i =原创 2017-04-15 23:16:12 · 328 阅读 · 0 评论 -
算法导论(Exercise 2.3-7)
#include#include#include#include#include#include#include#include#includeusing namespace std;void Merge(vector& arr, int start, int mid, int end){ vector left; vector right; for (int i =原创 2017-04-15 23:17:36 · 404 阅读 · 0 评论 -
算法导论(Exercise 2-4)
#include#include#include#include#include#include#include#include#includeusing namespace std;int Merge_sort(vector& arr,int start,int mid,int end){ vector left(arr.begin()+start,arr.begin(原创 2017-04-16 12:59:42 · 368 阅读 · 0 评论 -
算法导论(implementation of quick sort)
#include#include#include#include#include#include#include#include#includeusing namespace std;int Part(vector& data,int start,int end){ int pivot = data[start]; while (start < end){ while原创 2017-04-20 11:58:46 · 279 阅读 · 0 评论 -
算法导论(implement the 4.1 alogrithm)
#include#include#include#include#include#include#include#include#includeusing namespace std;vector GetMax(vector& diff,int start,int end){ vector res; if (start >= end){ res.push_back(s原创 2017-04-16 16:21:16 · 232 阅读 · 0 评论 -
算法导论(Exercise 4.1-2)
#include#include#include#include#include#include#include#include#includeusing namespace std;int find_maxsum(vector& elem){ int res = INT_MIN; int sum = 0; for (int i = 0; i < elem.size()原创 2017-04-16 16:32:51 · 428 阅读 · 2 评论 -
练习2.1-4 (字符串实现任意长度的数之和)
#include#include#include#include#include#include#include#include#includeusing namespace std;string add(string a,string b){ int in = 0;//stands for carry bit int lengtha = a.size(); int l原创 2017-04-15 12:51:09 · 414 阅读 · 0 评论 -
第二章(插入排序的实现)
#include#include#include#include#include#include#include#include#includeusing namespace std;int main(){ int amount; cout =1) of the array:" ; cin >> amount; vector arr(amount, 0); cout原创 2017-04-15 11:17:55 · 232 阅读 · 0 评论 -
算法导论(problems 6-3 Young tableaus)
Here is the solution for the problem.As for the (e) of this problem,the process is easy to implement.We just insert the orginal element into the tableaus and then extract the minimum.When the tableaus原创 2017-04-19 11:27:53 · 451 阅读 · 0 评论 -
算法导论 第22章 22.1-4
#includeusing namespace std;typedef struct Gnode{ int index; struct Gnode *next;}Gnode;int N,M;//N表示顶点,M表示边int main(){ scanf("%d %d",&N,&M); int i,j; bool *visited=new bool[N]; Gnode *原创 2016-04-16 16:39:20 · 620 阅读 · 0 评论 -
算法导论 第22章 22.1-3
#includeusing namespace std;typedef struct Gnode{ int index; struct Gnode *next;}Gnode;int N,M;//N表示顶点,M表示边,有向图int main(){ scanf("%d %d",&N,&M); int **area=new int*[N]; int **area2=new int原创 2016-04-16 10:29:31 · 654 阅读 · 0 评论 -
算法导论 第22章 22.1-6(两种方法)
方法一:#includeusing namespace std;int N;//N表示顶点,有向图int main(){ scanf("%d",&N); int i,j; int **area=new int*[N]; for(i=0;i<N;i++) area[i]=new int[N]; printf("Input the matrix:\n"); for(i=0;原创 2016-04-18 10:13:55 · 957 阅读 · 0 评论 -
算法导论 第22章 22.2-8
如果仅仅是题目当中要求的求解树的直径,一次BFS就行了#include#includeusing namespace std;int N;//邻接表存储树,N为树的节点数,将树仍然存储为无向图 //假设树的根节点的序号为0typedef struct Tnode{ int index; struct Tnode *next;}Tnode;int main(原创 2016-04-21 16:06:49 · 1319 阅读 · 0 评论 -
算法导论 第22章 22.2-7
#include#include#includeusing namespace std;typedef struct Gnode{ int color;//0 white,1 gray,2 black; int index; int depth; bool visited; struct Gnode *next;}Gnode;int N,M;//无向图,N为顶点,M为边原创 2016-04-21 15:17:37 · 739 阅读 · 0 评论 -
算法导论(Strasssen's algorithm)
#include#include#include#include#include#include#include#include#includeusing namespace std;vector> add(vector> A, vector> B){ int size = A.size(); vector> res(size,vector(size,0)); if (原创 2017-04-17 21:06:40 · 299 阅读 · 0 评论 -
算法导论(build the heap recursively 递归建堆)
#include#include#include#include#include#include#include#include#includeusing namespace std;typedef struct heap{ int arr_size; int heap_size; int *arr;}heap;void Tune(heap& h,int star原创 2017-04-18 11:26:52 · 449 阅读 · 0 评论 -
算法导论(build the heap iteratively 迭代建堆)
#include#include#include#include#include#include#include#include#includeusing namespace std;typedef struct heap{ int arr_size; int heap_size; int *arr;}heap;void Tune(heap& h,int star原创 2017-04-18 11:41:56 · 274 阅读 · 0 评论 -
算法导论(Exercise 6.5-9 implement the k-way merge by using heap)
#include#include#include#include#include#include#include#include#includeusing namespace std;typedef struct node{ int index; int value;}node;typedef struct heap{ int a_size; int h_siz原创 2017-04-18 14:41:37 · 380 阅读 · 0 评论 -
算法导论(min-priority-queue 最小优先队列的部分实现)
#include#include#include#include#include#include#include#include#includeusing namespace std;class Priority_queue{private: int h_size; vector elem;public: Priority_queue(){ elem.push原创 2017-04-18 15:55:49 · 1074 阅读 · 0 评论 -
算法导论(Problems 6-2) d-ary heap(多叉树实现堆)
#include#include#include#include#include#include#include#include#includeusing namespace std;typedef struct{ int d_dimential; int a_size; int h_size; int *arr;}heap;void Tune(heap& h,原创 2017-04-18 17:55:33 · 1587 阅读 · 0 评论 -
算法导论(Exercise 4.1-5)
here are two ways:first,we could set a variable "temp" which equals zero,and we could get the element of the array one by one.Every time we get a number,we must judge,if temp is less than or equal原创 2017-04-16 17:46:26 · 1002 阅读 · 0 评论