![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法导论
文章平均质量分 75
天地一扁舟
这个作者很懒,什么都没留下…
展开
-
算法导论:第8章 线性时间排序__计数排序
/*计数排序:n个元素都是0到k范围得整数,当k=O(n)时,排序运行时间为O(n)思想:对于数x,确定小于x的个数m,将x放在第m+1个位置上例子:假设3个元素小于x,那么x应该放在4上输入第一行的第一个数n是数组的个数,第一行第二个数表示所有n的元素中最大的数k接下来的第二行就是n个数字输入:8 52 5 3 0 2 3 0 3输出:0 0 2 2 3 3 3 5*/原创 2016-03-03 12:38:18 · 405 阅读 · 0 评论 -
算法导论:第8章 线性时间排序__基数排序
/*基数排序:含义:用在卡片机上的排序算法。特点:从最低位进行排序,稳定,d位数需要d趟适用:对年月日的排序引理:n个d位数,每个数有k个可能的取值,基数排序采用稳定排序。耗时O(d(n+k)) 证明:共需要d趟,每趟对n个数排序,采用基数排序O(n+k), 因此总共需要O(d(n+k))第一行的数n表示共有n个数字第二行为n个数输入:7329 457 657 8原创 2016-03-03 16:03:56 · 551 阅读 · 0 评论 -
算法导论:第15章 动态规划_5最优二叉搜索树
/*最优二叉搜索树:给定一个n个不同关键字的已经排序的序列K=(因此k1<k2<...<kn),希望用这些关键字构造一颗二叉搜索树。对每个关键字ki,都有一个概率pi表示其搜索频率。有些要搜索的值可能不在K中,因此我们还有n+1个“伪关键字”do,d1,d2,...,dn表示不在K中的值。d0表示所有小于k1的值,dn表示所有大于kn的值,对i=1,2,...,n-1,伪关键字di表示所有在原创 2016-03-18 22:35:31 · 1049 阅读 · 0 评论 -
算法导论:第9章 中位数和顺序统计量_1期望为线性时间的选择算法
/*线性时间选择算法:含义:是解决选择问题的分治算法与快速排序不同的是:快排递归处理划分的两边,而线性选择只对其中的一个部分进行处理时间复杂度:O(n)实现:需要用到随机划分函数主要的过程好似:A[p...r]通过随机划分函数得到枢轴q根据划分的两个区间A[p...q-1],A[q],A[q+1...r]然后判断<=A[q]的元素数量k=q-p+1 与 需要寻找的第i小的关系如原创 2016-03-04 12:22:10 · 1058 阅读 · 0 评论 -
算法导论:第9章 中位数和顺序统计量_2最坏情况为线性时间的选择算法
本文参考这位作者的思想,其blog地址:http://blog.csdn.net/whispermyname/article/details/6667690 但与他的实现不完全相同,上述测试用例全部通过/*最坏情况为线性时间的选择算法:算法步骤:1将n个元素划为n/5组2寻找这n/5个数组中每一组的中位数。对每一组采用插入排序来寻找中位数3对各组中位数,递归寻找中位数x4按中位原创 2016-03-10 11:09:17 · 1085 阅读 · 0 评论 -
算法导论:第15章 动态规划_1钢条切割
/*钢条切割:动态规划与分治的相同点:组合子问题求解原问题 不同点:分治的子问题不重叠,做了重复工作,动态规划保存解到表中动态规划的特点:1最优子结构:问题的最优解由相关子问题的最优解组合而成,子问题可以独立求解公司出售一段长度为i英寸的钢条价格为Pi(i=1,2,...),钢条长度为整英寸长度i 1 2 3 4 5 6 7 8 9 10价格P原创 2016-03-10 13:40:08 · 527 阅读 · 0 评论 -
算法导论:第15章 动态规划_1_2钢条切割_动态规划的两种解法
/*钢条切割:动态规划与分治的相同点:组合子问题求解原问题 不同点:分治的子问题不重叠,做了重复工作,动态规划保存解到表中动态规划的特点:1最优子结构:问题的最优解由相关子问题的最优解组合而成,子问题可以独立求解动态规划的实现方式:1带备忘的自顶向下,2自底向上1带备忘的自顶向下:递归中保存子问题的解,需要子问题的解时,首先检查是否已经保存过此解,如原创 2016-03-10 14:29:43 · 728 阅读 · 0 评论 -
算法导论:第15章 动态规划_2矩阵链乘法
/*矩阵链乘法:给定一个n个矩阵的序列,矩阵Ai的规模为Pi-1*Pi(1<=i<=n),计算乘积A1*A2*...*An设Ai,j表示AiAi+1...Aj乘积的结果矩阵设m[i,j]表示计算矩阵Ai,j乘法次数最小值那么我们需要求的结果就是m[1,n]设AiAi+1...Aj的最优括号方案的分割点在矩阵Ak和Ak+1之间,其中i<=k<j。那么m[i,j]等于计算Ai,k和Ak+原创 2016-03-10 17:40:15 · 727 阅读 · 0 评论