随笔分类 -  算法

摘要:要求求出给出的序列中的最长的递增或递减序列。 笨办法-两个动态规划合并 input = [5, 2, 3, 4, 1] def longList(nums): dp1 = [1] * len(nums) # 递减dp dp2 = [1] * len(nums) result1 = 1 result2 阅读全文
posted @ 2021-10-05 12:50 ho_ho 阅读(209) 评论(0) 推荐(0)
摘要:看着算法书有点懵T_T 参照https://blog.csdn.net/u011197534/article/details/78368580 自顶向下即是归并排序,参考我之前的归并排序,如图 自底向上,就是两两归并、四四归并、88归并,如下图: 书上的伪代码: /* 输入:n个元素的数组A[1.. 阅读全文
posted @ 2020-04-10 23:20 ho_ho 阅读(404) 评论(0) 推荐(0)
摘要:/*算法过程: 从大小为1的子数组A[1]开始,根据A[2]比A[1]小或大,将A[2]插入到A[1]的前面或后面。 在第i次执行中,要将A[i]插入到已排序的子数组A[1...i-1]中的合适位置上,其进行过程: 依次扫描序号从i-1到1的元素,每次都将A[i]和当前位置的元素比较。在扫描的每一步 阅读全文
posted @ 2020-04-08 14:11 ho_ho 阅读(204) 评论(0) 推荐(0)
摘要:/*A[1...n]为一个有n个元素的数组,首先找到最小元素,将其存放在A[1]中, 然后找到剩下的n-1个元素中的最小元素,将其存放在A[2]中,重复此过程直至找到第二大元素*/ /*算法描述: 输入: n个元素的数组A[1...n] 输出:按非降序排列的数组A[1...n] for i <- 1 阅读全文
posted @ 2020-04-08 10:32 ho_ho 阅读(179) 评论(0) 推荐(0)
摘要:/* 来自《算法分析与设计》 代码来自网络https://blog.csdn.net/m0_38068229/article/details/81262282*/ /* 输入:数组A[1...m]和它的三个索引p,q,r,1<=p<=q<r<=m,两个子数组A[p...q]和A[q+1...r]各自 阅读全文
posted @ 2020-04-07 23:09 ho_ho 阅读(502) 评论(0) 推荐(0)
摘要:/*算法描述:来自《算法分析与设计》 代码来自网络QAQ*/ /* * 输入:n个元素的升序数组A[1,...,n]和元素x * 输出:如果x = A[j], 1<=j<=n,则输出j, 否则输出0 * low <- 1; high <- n; j <- 0 * while (low<=high) 阅读全文
posted @ 2020-04-07 23:02 ho_ho 阅读(186) 评论(0) 推荐(0)