算法导论(算法实现与习题解答)
文章平均质量分 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 · 618 阅读 · 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 · 258 阅读 · 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 · 443 阅读 · 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 · 410 阅读 · 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 · 320 阅读 · 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 · 410 阅读 · 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 · 367 阅读 · 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 · 422 阅读 · 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 · 403 阅读 · 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 · 318 阅读 · 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 · 258 阅读 · 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 · 480 阅读 · 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 · 442 阅读 · 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 · 255 阅读 · 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 · 482 阅读 · 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 · 660 阅读 · 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 · 685 阅读 · 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 · 998 阅读 · 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 · 1357 阅读 · 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 · 769 阅读 · 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 · 333 阅读 · 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 · 490 阅读 · 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 · 301 阅读 · 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 · 415 阅读 · 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 · 1121 阅读 · 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 · 1664 阅读 · 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 · 1040 阅读 · 0 评论
分享