算法设计
haizaibailan
我复制粘贴回来啦
展开
-
动态规划求解0-1背包问题
问题描述:给定 n 个物品和一个容量为 C 的背包,请给出物品装入背包的方案,使得背包中物品的总价值 M 最大,并满足:• 每个物品 I 的重量为 wi,价值为 vi。• 每个物品不可拆分,要么完整装入背包,要么不在背包里。• 背包中物品的总重量不能超过容量 C 。以以下数据为例子:#include<iostream>#include<stdio.h>using namespace std;#define Max_weight 5//背包承载最原创 2022-04-09 21:24:41 · 807 阅读 · 0 评论 -
分治算法解循环赛日程表问题
• 问题描述:n=2^k个运动员进行“地表最强16人”循环赛,日程满足: 每个选手必须与其他n-1个选手比赛一次; 每个选手一天只能赛一次; 循环赛一共进行n-1天。• 实验要求输入:n——参加循环赛的运动员人数输出:日程表的详细安排(行:运动员;列:一天;间隔:/t)保存结果(屏幕显示 or 存文件:学号+“_循环赛”+.txt)程序:分治过程必须通过递归函数 Scheduled(int i, int size)表达其中 i 表示目前正在解决的日程表起始位置size代表需要解决的...原创 2022-04-05 10:38:49 · 1104 阅读 · 0 评论 -
第二章 递归与分治策略算法实现(二分查找、合并排序、快速排序)
2.3 二分搜索技术#include <stdio.h>int BinarySearch(int* a,int left,int right,int e)//寻找有序a[n]数组中是否有e元素,若有,返回e的位置;若没有,返回-1{ while (left <= right) { int mid = (left + right) / 2; if (a[mid] == e) { return mid; } else if (a[mid] < e) { Bin原创 2022-03-20 19:47:09 · 1238 阅读 · 0 评论 -
简单排序算法(选择排序、插入排序、冒泡排序)可直接运行
欢迎提出更优化建议算法设计课程记录#include<stdio.h>void sort1(int *a);//选择排序void sort2(int *a);//插入排序void sort3(int *a);//冒泡排序void swap(int *a, int n, int m);//将数组中第m位与第n位交换位置void sort1(int *a){ printf("选择排序:\n"); int i,j,k; int com = 0;//比较 int sw =原创 2022-03-20 11:33:43 · 714 阅读 · 0 评论