算法导论
文章平均质量分 55
sscout
这个作者很懒,什么都没留下…
展开
-
算法导论第9章习题
9.1-1首先第一步,找出最小的元素,如图所示,一个内部节点表示一次比较,一个根节点表示一次比较,所以共需n-1比较第二步,如图显示,只需要比较与最小值比较过的数字即可得出第二小的数字,因为第二小的数字必定与最小数字比较过,所以与最小值比较过的数字共有lgn的数字,即最多需要比较lgn-1次最后得出最坏情况需要比较 n-1 + lgn - 1次,当n为奇数时,取lgn的上整数9...原创 2018-07-26 13:03:20 · 2110 阅读 · 0 评论 -
算法导论第四章思考题
4-14-24-3f.g.h.i.j.4-44-54-6a.b.c.d.typedef struct array { int m; int n; int step; int *data;} array;int get(array A...原创 2018-08-31 00:11:22 · 2889 阅读 · 1 评论 -
算法导论第四章练习
4.1练习4.1-1返回的是数组中最大元素的下标和值4.1-2public static int[] violenceFindMaximumSubarray(int[] arr) { int sum = Integer.MIN_VALUE; //this variable is made for the max sum of outer loop int tempSum ...原创 2018-08-23 23:10:07 · 1900 阅读 · 1 评论 -
算法导论第二章笔记
2.1笔记插入排序代码实现,这是按书本的伪代码实现的public static void insertionSort(int[] arr) { for(int i = 1;i < arr.length;i++) { int key = arr[i]; int j = i-1; while(j >= 0 && key < arr[j]...原创 2018-08-02 23:26:42 · 156 阅读 · 0 评论 -
算法导论第三章练习
3-1练习3.1-1存在c₁=1/2时,max(f(n),g(n))≥ 1/2(f(n)+ g(n))存在c₂ = 1时,max(f(n),g(n))≤ (f(n)+ g(n))所以 max(f(n),g(n))= Θ(f(n)+ g(n))3.1-2∵ b > 0, c₁为正常量∴ c₁n^b ≥ 0运用反证法∵ c₁n^b ≤ (n+a)^b ≤ c₂...原创 2018-08-06 22:50:05 · 1728 阅读 · 0 评论 -
算法导论第二章练习
2.1练习2.1-1 (1) 31 41 59 26 41 (2) 31 41 59 26 41 (3) 26 31 41 59 41 (4) 26 31 41 41 59需要注意的是,这里的原数组的后项41在排序后仍在前项41的后面2.1-2按降序排序,只需要在循环提内部的if判断中将 < 改为 > 即可...原创 2018-08-01 17:10:02 · 209 阅读 · 0 评论 -
算法导论第三章笔记
概念摘要 Θ(g(n))={ f(n): 存在正常数c1,c2和n0,使对所有的n>=n0,有0<=c1g(n)<=f(n)<=c2g(n) } O(g(n))={ f(n): 存在正常数c和n0,使对所有n>=n0,有0<=f(n)<=cg(n) } Ω(g(n))={ f(n): 存在正常数c和n0,使对所有n>=n0,有0...原创 2018-07-09 00:30:37 · 201 阅读 · 0 评论 -
算法导论第二章思考题
2-1a. ∵ 长度为k的数组∴ 时间复杂度为 Θ(k²)∵ 共有n/k个数组∴ T(n)= n/k * Θ(k²)= Θ(nk)b.∵ 2^i = n/k∴ i = lg(n/k)∴ 共有 lg(n/k)+ 1层∵ 每层合并数组花费的时间为 Θ(n)∴ 合并所有子数组的时间为 Θ(nlg(n/k))c.∵ 要与原来归并排序具有相同的运行时间...原创 2018-08-05 17:21:33 · 1491 阅读 · 2 评论 -
算法导论第7章 课后习题
7.1-1这个如果理解了这节内容的话,还是很好演示的。略7.1-2(1)当数组的所有元素相同的话,i每次都需要+1操作,在循环结束后i=r-1,返回的是r(2)只需要在循环内部加上相等判断,间断的让i+1即可 public static int partition_2(int[] arr,int p,int r) { int x = arr[r]; int i = p...原创 2018-07-21 15:44:02 · 907 阅读 · 0 评论 -
算法导论第三章思考题
3-13-2解释最后一个3-33-4a.错误,n = O(n²),但n² ≠ O(n)b.错误,n+1≠Θ(min{n,1})c.正确d.错误f(n) = 2n,g(n)=n∴2^f(n)=4^n,2^g(n)=2^n∴2^f(n) ≠ O(2^g(n))e.错误f(n) = 1/n ,(f(n))...原创 2018-08-21 01:45:30 · 1643 阅读 · 0 评论