- 博客(7)
- 收藏
- 关注
原创 求解0/1背包问题及左右剪枝 回溯法
求解0/1背包问题及左右剪枝 回溯法装入背包的物品重量和恰好为W#include<stdio.h>#define MAXN 20int n,W,k;int w[MAXN],v[MAXN];int x[MAXN];int maxv=0;void dfs(int i,int tw,int tv,int rw,int op[]){ if(i>n) { if(tw==W&&tv>maxv) {
2020-10-03 12:39:37
2005
原创 求解0/1背包问题及左剪枝 回溯法
求解0/1背包问题及左剪枝#include<stdio.h>#define MAXN 20int n,W,k;int w[MAXN],v[MAXN];int x[MAXN];int maxv=0;void dfs(int i,int tw,int tv,int op[]){ if(i>n) { if(tw==W&&tv>maxv) { maxv=tv;
2020-10-03 12:35:09
893
原创 求解0/1背包问题 回溯法
求解0/1背包问题 无剪枝算法#include<stdio.h>#define MAXN 20//最多物品数int n,W,k;int w[MAXN],v[MAXN];int x[MAXN];//存放最终解int maxv=0;void dfs(int i,int tw,int tv,int op[]){ if(i>n) { if(tw==W&&tv>maxv) { m
2020-10-03 12:33:21
341
原创 冒泡排序 数组实现 c与c++
冒泡排序 数组实现冒泡排序采用交换法将最小元素放在开头c语言#include<stdio.h>void disp(int a[],int n){ int i; for(i=0;i<n;i++) printf("%d ",a[i]); printf("\n");}void BubbleSort(int a[],int n,int i){ int j; int exchange; if(i==n-1)
2020-09-25 23:12:27
116
原创 归并排序 自顶向下 数组实现
归并排序 自顶向下 数组实现归并(即Merge函数)二路归并排序举例:分为有序子表A,有序子表B。A中首个元素与B中首个元素比较;若A1小于B1,取出A1,比较A2与B1;若A1大于B1,取出B1,比较A1与B2。依次类推。递归(即MergeSort函数)分解问题#include <stdio.h>#include <malloc.h>//对应malloc函数与free函数的使用void disp(int a[],int n){ int i;
2020-09-25 22:48:45
113
原创 快速排序 数组实现
快速排序 数组实现快速排序的基本方法是在n个元素中任取一个元素(本代码取第一个元素)作为基准,将该基准放入正确位置,小于基准的数据组成的子序列放在左侧,大于基准的数组组成的子序列放在右侧。(即Partition函数)对两个子序列重复上述操作,直至每个子序列只有一个元素或空为止。(即QuickSort函数)时间复杂度:O(nlogn)#include<stdio.h>void disp(int a[],int n)//进行交换的一个函数{ int i; for(i=
2020-09-25 21:37:27
311
原创 合并有序数组 数据结构实验
给定两个按照升序排列的数组,请把它们合成一个升序数组并输出。本题以数组形式实现#include<stdio.h>#include<stdlib.h>//合并有序数组int main(){ int a,b,c,k,i,j,A[100],B[100]; scanf("%d",&a); //进行数组a的输入 for(i=0;i<a;i++) scanf("%d",&A[i]);
2020-07-20 13:03:17
2793
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人