
《算法导论》笔记
文章平均质量分 83
《算法导论》是经典教材,我愿意把自己的理解写出来与大家共享,请不吝赐教。
GNG
哥尼斯堡,我的故乡。
展开
-
算法导论-----最长公共子序列LCS(动态规划)
目录一.概念梳理二.最长公共子序列解决方案 方案1:蛮力搜索策略方案2:动态规划策略三、C代码实现 实现1实现2(空间优化)一.概念梳理 1. 子序列(subsequence): 一个特定序列的子序列就是将给定序列中零个或多个元素去掉后得到的结果(不改变元素间相对次序)。例如序列<A,B,C,B,D,A,B><A,B,C,B,D,A,B>的子序列有:<A,B><A,B>、<B,C原创 2016-12-19 22:51:07 · 45826 阅读 · 11 评论 -
算法导论-----动态规划是什么
《算法导论》中并没有把动态规划的来龙去脉介绍清楚,网上很多讲解都是动态规划的数学模型,感觉没必要系统的学习数学的定义,把人搞晕了。本文更像是一篇科普,方便理解什么是动态规划。一、动态规划概述 动态规划(Dynamic Programming)通常是用来解决最优化问题的。最初是由数学家在研究多阶段决策过程的优化问题时,提出的优化原理,把多阶段过程转化为一系列单阶段问题,利用各阶段之间的关系,逐个求解原创 2016-12-14 21:41:20 · 10296 阅读 · 2 评论 -
算法导论------递归算法的时间复杂度求解
1.算法设计与分析概述 在总结递归算法的时间复杂度分析之前,应该明确几组概念。 算法仅仅是求解问题的解决方案,这个解决方案本身并不是问题的答案,而是能获得答案的指令序列。只有通过执行算法才可以获得求解问题的答案。 从算法是否递归调用的角度看,算法可以分为非递归算法和递归算法。 非递归算法时间复杂度分析较为简单,通常是计算算法中基本语句执行次数,一般都是一个关于问题规模n的表达式,原创 2016-12-04 19:31:11 · 78678 阅读 · 7 评论 -
算法导论-----排序的9种实现(C/C++)
目录A、冒泡排序B、选择排序C、插入排序D、折半插入排序E、归并排序F、快速排序G、希尔排序堆排序、基数排序、桶排序后续补充。。。。。A、冒泡排序冒泡排序有很多种实现方式。下面总结常见的几种,并对冒泡排序进行改进。 冒泡排序1//冒泡升序排序1,强烈推荐,好记void BubbleSort(int arr[],int length) { int tmp; in原创 2016-11-23 23:30:40 · 2219 阅读 · 0 评论 -
算法导论------ShellSort希尔排序
目录1.Shellsort的思想2.代码实现3.增量序列4.算法分析5.参考资料 Shellsort是最古老的排序算法之一,该算法以其发明者Donald L. Shell的名字命名(1959)。在ShellSort排序算法之前的算法时间复杂度基本都是O(n2)O(n^2),该算法是突破这个时间复杂度的第一批算法之一。另外 Shellsort 是快速、易于理解和易于实现的。 然而,其复杂原创 2016-11-25 18:29:22 · 4647 阅读 · 5 评论 -
算法导论------堆排序heapsort
目录1.堆排序概述2.二叉堆3.二叉堆的存储4.维护堆的性质5.建堆操作6.堆排序7.C代码实现8.参考资料1.堆排序概述 简单选择排序是:假设排序序列为L[1...n]L[1...n],第i趟排序从L[i...n]L[i...n]中选择关键字最小(大)元素与L[i]L[i]交换,每一趟排序可以确定一个元素到最终的位置上,这样经过n−1n-1趟排序就可以使得整个排序序列有序。可惜原创 2016-12-02 00:32:36 · 6256 阅读 · 0 评论 -
算法导论-------快速排序QuickSort
目录: 一、快速排序思想介绍 二、实现的三步骤(分解、子问题求解、合并) 三、C代码实现 3.1 快速排序双向扫描法(一)3.2 partition函数双向扫描法(二)3.3 partition函数单向扫描法 四、时间空间复杂度分析 五、动画演示一、快速排序思想介绍 快速排序(QuickSort)是对冒泡排序(BubbleSort)的一种改进。排序效率在同为O(N*logN)原创 2016-11-22 12:32:53 · 4697 阅读 · 3 评论 -
算法导论------渐近记号Θ、Ο、o、Ω、ω详解
算法设计与分析这门课学了很久了,竟然对Θ、O、o、Ω、ωΘ、Ο、o、Ω、ω还没有一个清晰的认识,是总结一下的时候了。下面正式开始:目录:1.渐进精确界记号:ΘΘ(big-theta)2.渐进上界记号 :OO(big-oh)3.渐进下界记号 :ΩΩ(big-omege)4.非渐进紧确上界:o(小-oh)5.非渐进紧确下界:ω(小-omege)6.渐进记号Θ、Ο、o、Ω、ω关系7.参考资料原创 2016-11-26 22:01:12 · 87447 阅读 · 26 评论