算法导论
文章平均质量分 73
Liuyn_qc
这个作者很懒,什么都没留下…
展开
-
矩阵相乘的Strassen算法
LZ是菜鸟一枚,非计算机专业学生,正在学习算法导论这本书,希望养成学习完一个问题之后进行归纳整理的习惯,所以开始了博客之路,内容都是最基础的笔记,如果发现错误希望你能慷慨的帮我指出来,这样我才能改正并进步哦。 话不多说 下面是第二次记录么么哒问题描述实现两个nn维方阵A=(aij)n×nA=(a_{ij})_{n\times n}和B=(bij)n×nB=(b_{ij})_{n\times n}的原创 2016-05-05 22:46:51 · 4961 阅读 · 1 评论 -
分治策略求解最大子数组问题
问题描述:给定一个数组A[low,...,high],含有负数(否则研究这一问题没有意义)。寻找A的和最大的非空连续子数组问题称为求解最大子数组原创 2016-04-28 19:55:35 · 2052 阅读 · 0 评论 -
排序和顺序统计量之简单选择排序
这个文章接上篇文章,堆排序和简单选择排序都属于选择排序算法。 所谓选择排序,其核心思想就是,对一组数据,每次选择其中最小的那个(我们针对正序来说),将其放在最前面的位置上。简单选择排序针对一组数组A=1,3,5,2,7,4,9,6,8A={1,3,5,2,7,4,9,6,8},每次循环对数组中的元素进行比较,找出本次循环中最小的元素,将其放在最前面的位置。 具体设计时,定义两重循环,针对外层循环原创 2016-05-30 10:23:06 · 396 阅读 · 0 评论 -
交换排序之冒泡排序
交换排序交换排序的基本思想是:两两比较待排序记录的关键字,发现记录的次序相即交换,直到没有反序的为止。应用中思想的排序算法有冒泡排序和快速排序。冒泡排序冒泡排序算法就是交换排序的一种直接的简单的应用。第一轮循环时,从一个元素开始,将第一个元素与第二个元素关键字比较,出现逆序则交换,然后比较第二个和第三个,。。。,依次下去,则第一轮循环可以将最大的数放到最后(假设正序)。第二轮循环针原创 2016-05-30 14:27:46 · 261 阅读 · 0 评论 -
交换排序之快速排序
应用交换排序思想的另一种经典排序算法是快速排序,快速排序的思想可以大致分成两大部分,一部分是利用分治策略的递归算法,另一部分是根据随机选择元素作为基准对整个数组进行的划分。算法先实现对数组进行划分,分成两个子数组,左边的子数组元素都比基准元素小,右边的子数组元素都比基准元素大。然后再对这两个子数组递归的进行划分,直到最后数组中只剩下一个元素。数组划分我们使用一个例子来说明对数组的划分过程 给定一个原创 2016-06-01 12:38:14 · 355 阅读 · 0 评论 -
排序和顺序统计量之堆排序
比较排序算法我们平时接触到的一些重要的排序算法,插入排序、归并排序、堆排序及快速排序都属于比较排序算法(即都是通过对元素进行比较操作来确定输入数组的次序)。已经证明了任意比较排序算法排序nn个元素的最坏情况运行时间的下界为Ω(nlgn)\Omega(nlgn)(使用决策树模型),从而说明了堆排序和归并排序是渐进最优的比较排序算法。堆排序(二叉)堆是一个数组,它可以被看成一个近似的完全二叉树。除了最底原创 2016-05-26 19:01:42 · 272 阅读 · 0 评论