
算法设计与分析
文章平均质量分 66
雪岩ding
判题机你不讲武德~
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
算法实验---线性时间选择问题(分治)
问题描述: 给定一个n个元素序列(乱序),在线性时间内(O(n))找出其中第k大的元素(1<=k<=n); (输入元素均为double型数据) 输入说明: 第一行输入一个正整数n; 第二行输入n个double型数据代表整个序列; 第三个输入需要查找的第search大的数据(1<=search<=n); 输出说明: 输出这个序列中第search大的元素即可; input_case1: 6 0.2 3.6 9.6 -1 0 44 4 output_case1: 3.6 input_cas原创 2021-05-11 21:15:00 · 626 阅读 · 0 评论 -
0-1 背包问题
01 背包问题(经典dp问题) 问题描述: n个物品装入容量为c的背包 n个物品重量依次为:w1,w2,…,wn n个物品价值依次为:v1,v2,…,vn 物品不能切割,只能装或不装,求怎样才能使得背包装得物品价值之和最大? input: 输入正整数n,c(n代表物品个数,c代表背包容量) 接下来第一行输入n个正整数代表每个物品得重量wi 接下来第二行输入n个正整数代表每个物品的价值vi output: 第一行输出: maxValue:最大价值 第二行输出每个物品装入背包情况(0为装入,1为未装入,用空格隔原创 2021-04-05 20:31:44 · 402 阅读 · 0 评论 -
算法设计与分析---算法概述
算法概述 1.算法与程序 1.算法的概念:算法是由若干条指令组成的又穷序列,且满足4条性质: 1)输入:有0个或多个由外部提供的量作为算法的输入; 2)输出:算法至少产生一个量最为输出; 3)确定性:组成算法的每条指令是清晰的,是没有歧义的; 4)有限性:算法中每条指令的执行次数是有限的,执行的时间也是有限的; 2.程序于算法的区别: 程序可以不满足4),比如操作系统是一个程序而不是一个算法,操作系统是一个在无限循环中执行的程序; 2.算法复杂度分析 1.算法复杂度分为时间复杂度和空间复杂度, 2.时间复杂原创 2021-03-27 11:07:00 · 624 阅读 · 0 评论 -
算法设计与分析---递归与分治
算法设计与分析—递归与分治 问题一,输出全排列(不按照大小输出,要求使用递归不使用回溯) input: 输入一个正整数(不要太大,递归层数稍微一多就超时!!!) output: 输出1----n的全排列 input_case: 3 output_case: 123 132 213 231 321 312 思路: 递归一定要找好递归边界与递归关系!!! 设置函数P(int *a,int k,int n); k从0开始计数,k到达问题边界就输出一下; k没到边界开始,分别以每一个元素作为前缀进行递归输出!原创 2021-03-26 19:29:39 · 784 阅读 · 0 评论 -
算法设计与分析---回溯法
** 算法设计与分析—回溯法 ** 问题一,回溯法解决0-1背包问题 问题描述: n个物品装入容量为c的背包里面,物品不可以切割,问可以装入的最大价值为多少? input: 输入一个正整数n和一个double数c(n为物品个数,c为背包容量) 接下来n行每行输入: 物品价值 物品重量 output: 输出最大价值 input_case: 5 5 1 2 3 2 5 6 1 1 2 1 output_case: bestPrice:6.000000 code: #include<iostrea原创 2021-03-24 20:50:53 · 497 阅读 · 0 评论 -
算法设计与分析---greedy算法
算法设计与分析—greedy算法(持续更新中…) 问题一,活动安排问题: input: 输入n为活动数目,接下来的n行每行输入 活动的起始时间 活动的终止时间 求最优的安排方案是用到的时间最大化 output: 输出 最优安排方案所占时间/总时间 以及活动安排的方案(安排为1,未安排为0) input_case: 11 1 4 3 5 0 6 5 7 3 8 5 9 6 10 8 11 8 12 2 13 12 14 output_case: 10/14 1 0 0 1 0 0 0 1 0 0 1原创 2021-03-21 18:11:54 · 776 阅读 · 0 评论 -
算法设计与分析----动态规划
算法设计与分析----动态规划 矩阵链相乘问题: 1.问题引入: 矩阵相乘,计算顺序的不同可能会引起计算复杂度成百倍的增长,所以,求解矩阵链最优计算顺序就变得十分必要了! 2.code: #include<stdio.h> #include<iostream> using namespace std; #define INF 9999 int m[INF][INF];//用于存放各个规模问题的求解数 int s[INF][INF];//用于记录各个问题的划分(其实就是相乘时括原创 2021-03-14 21:55:44 · 477 阅读 · 0 评论