![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
林染
这个作者很懒,什么都没留下…
展开
-
枚举法实现0-1背包问题
给定n种物品和一背包。物品i的重量是wi,其价值为vi,背包的容量为C。问应如何选择装入背包的物品,使得装入背包中物品的总价值最大?在装入背包时,每种物品i只有两种选择:装入或者不装入。既不能装入多次,也不能只装入一部分。(1)背包容量C为6,n为4,物品重量和价值如下图所示,如何选取使得背包总价值最大?使用穷举法编程实现。public class List {public static ...原创 2018-12-06 19:21:44 · 2395 阅读 · 0 评论 -
矩阵连乘问题
下面介绍三种方法来实现矩阵连乘问题。1.动态规划//矩阵连乘--动态规划public class DynamicPlan { public static int n; public static int[] p; public static int[][] m; public static int[][] s; public static void main(Str...原创 2018-12-09 14:36:15 · 256 阅读 · 0 评论 -
动态规划实现0-1背包问题
//动态规划实现0-1背包public class DN01 { public static void dy(int []v,int []w,int c,int [][]m){ int n=v.length-1; //i=n int jMax=Math.min(w[n]-1, c); for(int j=0;j<=jMax;j++) { m[n][j]=0; }...原创 2018-12-09 14:29:51 · 260 阅读 · 0 评论 -
快速排序
(1)递归实现//快速排序public class Kuaisu { //递归求解 public static int [] qSort(int [] a,int p,int r) { if(p<r) { int q=partition(a,p,r); qSort(a,p,q-1); qSort(a,q+1,r); } return a; } //确...原创 2018-12-07 10:59:14 · 104 阅读 · 0 评论 -
合并排序
用java代码写一段合并排序的程序//合并排序public class Hebing { public static void mergeSort(int [] a) { int [] b=new int[a.length]; int s=1; //开始时,让数组中的每个元素单独成为一个子数组 while(s<a.length) { ...原创 2018-12-07 10:55:01 · 209 阅读 · 0 评论 -
随机数生成一个数组,对该数组检索
生成一个含100个随机数的数组,对其进行检索,这里以二分检索为例。import java.util.Random;import java.util.Scanner;//引入随机数的二分检索public class RandomErfen { public static void main(String[] args) { //定义一个含100个随机数的数组,这里我设定了随机数...原创 2018-12-07 10:44:23 · 771 阅读 · 0 评论 -
二分查找
二分查找,也叫折半查找,其基本思想是:首先,假设数组中元素是按升序排列,将数组中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将数组分成前、后两个子数组,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子数组,否则进一步查找后一子数组。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子数组不存在为止,此时查找不成功。//二分检索public...原创 2018-12-07 10:36:48 · 94 阅读 · 0 评论 -
改进的顺序检索
改进的顺序检索就是在顺序检索的基础上,先对给定的数组排序,然后再顺序检索,下面的算法还给出了检索次数以及检索时间。//改进的顺序检索 public class Shunxvgaijin { public static void main(String[] args) { int a[]= {1,25,33,14,75,26,17,84,9,10,19,2,43}; //定义被检索数...原创 2018-12-07 10:27:16 · 1847 阅读 · 1 评论 -
顺序检索
从键盘输入一个数字,在给定的数组中顺序查找这个数,并给出查找次数和检索时间。//顺序检索 public class Shunxv { public static void main(String[] arg) { int count = 0; int[] arr = {1,5,47,8,34,10,17,36,21}; System.out.printl...原创 2018-12-07 10:15:41 · 1311 阅读 · 0 评论 -
最长单调递增子序列
设计算法,时间复杂度为O(n**2),实现单调递增子序列。//最长递增子序列public class Longest { public static void lis(float[] L){ int n = L.length; int[] f = new int[n];//用于存放f(i)值; f[0]=1;//以第a1为末元素的最长递增子序列长度为1; f...原创 2018-12-09 14:43:25 · 211 阅读 · 0 评论