
算法设计与分析
文章平均质量分 90
是奶酥吖_
这个作者很懒,什么都没留下…
展开
-
算法分析与设计-会场安排问题(贪心)(通俗易懂,附源码和图解,含贪心选择性质和最优子结构性质的证明)(c++)
4-1 会场安排问题(一)题目问题描述假设在足够多的会场里安排一批活动,并希望使用尽可能少的会场。设计一个有效的贪心算法进行安排。(这个问题实际上是著名的图着色问题。若将每个活动作为图的一个顶点,不相容活动间用边相连。使相邻顶点有着不同颜色的最小着色数,相当于要找的最少会场数。)算法设计对于给定的nnn个待安排活动,计算使用最少会场的时间。数据输入由文件input.txt提供输入数据。第1行中有一个整数nnn,表示有nnn个待安排的活动。接下来的nnn行中,每行有2个正整数,分别表示nnn个待原创 2022-04-27 08:24:45 · 12730 阅读 · 0 评论 -
算法分析与设计-数字三角形问题(动态规划)(通俗易懂,附源码和图解,含时间复杂度分析)(c++)
3-4数字三角形问题(一)题目问题描述给定一个由nnn行数字组成的数字三角形,如图所示。 7 3 8 8 1 0 2 7 4 44 5 2 6 5 试设计一个算法,计算从三角形的顶至底的一条路径,使该路径经过的数字总和最大。算法设计对于给定的由nnn行数字组成的数字三角形,计算从该三角形的顶至底的路径经过的数字和的最大值。数据输入由文件input.txt提供输入数据。文件的第1行是数字三角形的行数 nnn,1原创 2022-04-13 23:25:26 · 8317 阅读 · 1 评论 -
算法分析与设计-最接近中位数的k个数(通俗易懂,含图解,附源码)(c++)
(一)题目问题描述给定nnn个互不相同的数组成的集合SSS以及正整数k≤nk\leq nk≤n,试设计一个O(n)\Omicron(n)O(n)时间算法找出SSS中最接近SSS的中位数的kkk个数。注意:此处“最接近”指数值大小接近,而不是排序位置接近。(二)解答算法思路若已知能在线性时间内找到数组中第kkk小的元素的算法,求解步骤如下:1.通过该算法求数组的中位数;2.计算数组中每个元素与中位数之差的绝对值并存放在绝对值数组;3.通过该算法求绝对值数组中第kkk小的数;4.将原数组中与原创 2022-04-04 09:59:59 · 1894 阅读 · 1 评论 -
算法分析与设计-线性时间选择详解(通俗易懂,含图解,附源码)(c++)
线性时间选择(一)题目问题描述给定线性序集中nnn个元素和一个正数kkk,1≤k≤n1\leq k\leq n1≤k≤n,要求找出这nnn个元素中第kkk小的元素注意:nnn中的元素不重复(二)解答1.RandomizedSelect算法算法思路在数组a[p:r]a[p:r]a[p:r]中随机找一个数iii将数组划分成两个子数组a[p:i]a[p:i]a[p:i]和a[i+1:r]a[i+1:r]a[i+1:r],如果数组a[p:r]a[p:r]a[p:r]的长度小于等于kkk,说明第kkk原创 2022-04-04 09:38:01 · 18331 阅读 · 7 评论 -
算法设计与分析-众数问题(分治递归,含排序与不排序两种解法)(通俗易懂,附源码和图解,含时间复杂度分析)(c++)
2-1众数问题(一)题目问题描述给定含有nnn个元素的多重集合SSS,每个元素在SSS中出现的次数称为该元素的重数。多重集SSS中重数最大的元素称为众数。例如:S=1,2,2,3,5S={1,2,2,3,5}S=1,2,2,3,5。多重集SSS的众数是2,其重数为3。算法设计对于给定的由nnn个自然数组成的多重集SSS,计算SSS的众数及其重数。数据输入输入数据由文件名为input.txt的文本文件提供。文件的第一行为多重集 中元素原创 2022-03-23 19:59:21 · 16446 阅读 · 8 评论 -
算法分析与设计-格雷码问题(分治递归)(通俗易懂,附源码和图解,含时间复杂度分析)(c++)
2-14格雷码问题(一)题目问题描述Gray码是一个长度为2n2^n2n的序列。序列中无相同元素,每个元素都是长度为 n的(0,1)串,相邻元素只有一位不同。用分治策略设计一个算法对任意的 n构造相应的Gary码。(二)解答方法:分治递归算法思路运用分治递归求解nnn位的Gray码的思路为:将求解 nnn位Gray码的问题划分成求解 n−1n-1n−1位Gray码的问题,再将求解 n−1n-1n−1位Gray码的问题划分成求解 n−2n-2n−2位Gray码的问题…直到划分成求解1位Gray原创 2022-03-18 23:52:33 · 7920 阅读 · 0 评论 -
算法分析与设计-算法分析题-第1章-题目答案与解析
第1章 算法概述 算法分析题 题目+答案解析算法分析题笔记参考:https://blog.youkuaiyun.com/qq_50737715/article/details/1234418821-1 求下列函数的渐近表达式(1)3n2+10n3n^2+10n3n2+10n∵O(n)<O(n2)\because \Omicron(n)<\Omicron(n^2)∵O(n)<O(n2)∵3n2+10n=O(n2)\because 3n^2+10n=\Omicron(n^2)∵3n2+10n=原创 2022-03-12 17:43:25 · 5386 阅读 · 0 评论 -
算法设计与分析-笔记-第1章-算法概述(理清5种渐近分析的记号,学会算法复杂性分析,区分P、NP、NPC、NP-Hard问题)
第1章 算法概述(一)算法与程序1.算法算法是解决问题的一种方法或过程算法是由若干条指令组成的有穷序列算法满足: ①输入:有零个或多个输入 ②输出:至少有一个输出 ③确定性:每条指令是清晰无歧义的 ④有限性:每条指令执行次数和执行时间是有限的2.程序程序是算法用某种程序设计语言的具体实现算法必须满足①~④,而程序不一定满足④操作系统是在无限循环中执行的程序而不是算法,操作系统的各种任务由特定的子程序实现,子程序既是程序也是算法数据结构+算法=程序(二)算法复杂性分析1原创 2022-03-12 12:48:30 · 1163 阅读 · 0 评论 -
算法设计与分析-统计数字问题(暴力、分治递归)(通俗易懂,附源码和图解,含时间复杂度分析)(c++)
1-1统计数字问题(一)题目问题描述一本书的页码从自然数 1 开始顺序编码到自然数nnn。书的页码按照通 常的习惯编排,每个页码都不含多余的前导 0。例如,第 6 页用数字 6 表示而不 是 06 或 006 等。数字计数问题要求对给定书的总页码nnn,计算书的全部页码分别 用到多少次数字 0,1,2,……,9。算法设计给定表示书的总页码的十进制整数n(1≤n≤109)n(1\leq n\leq10^{9})n(1≤n≤109),计算书的全部页 码中分别用到多少次数字 0,1,2,……,9。 数原创 2022-03-08 17:43:28 · 7839 阅读 · 3 评论