
算法分析与设计
傻小菜
这个作者很懒,什么都没留下…
展开
-
回溯算法——0-1背包问题
#include<bits/stdc++.h>#define NUM 100using namespace std;int n; //物品的个数int c; //背包的容量int cw; //目前背包的容量int cv; //目前背包内物品的价值int bestv; //最大价值//定义一个物品的结构体struct Object{ ...原创 2020-01-18 20:36:05 · 249 阅读 · 0 评论 -
回溯算法——装载问题
问题:给定n个集装箱,要装上载重量为c的轮船,其中集装箱i的重量为w[i],求不超过轮船最大载重量的前提下,所能装的集装箱的最大重量。注意:集装箱不可以分割#include<bits/stdc++.h>#define NUM 100using namespace std;int n; //集装箱的总数量int c; //轮船的载重量int ...原创 2019-10-14 20:44:01 · 669 阅读 · 0 评论 -
最大子段和的求解问题
采用分治策略求最大子段和的问题/* * 一个数组中的最大子段和有三种情况 * 只有一个元素时,最大子段和就是这个元素 * 超过一个元素时,采用分治策略(递归),进行划分,递归求解 * 可能在中间值的左侧,也可能在右侧,也可能是跨过中间值 * 把这三种情况都列出来,然后最后比较这三种情况求得的子段和的大小 */求解方法:pac...原创 2019-09-11 17:22:36 · 194 阅读 · 0 评论 -
选择问题——分治
的题目:对于给定的包含n个元素的数组a[0:n-1],要求从中找出第k小的元素输入:对于每一组测试样例有两行,第一行是整数n和k,第二行是n个整数输入样例:第一组: 5 2 3 9 4 1 6第二组:7 3 4 59 7 23 61 55 46分析:采用快速排序的思想,将一组数通过轴值划分为两部分,根据第...原创 2019-09-17 20:07:36 · 1704 阅读 · 0 评论 -
中位数的计算
两种方法1,排序法2,分治策略——采用快速排序的思想package 中位数;import java.util.Arrays;import java.util.Scanner;public class Mid_Num { /* * 有两种方法计算中位数 * 排序 * 分治 */ static int a[]=new int[1001]; public s...原创 2019-09-17 21:19:27 · 1274 阅读 · 0 评论