84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
认证0级讲师
找最优解,可以看看遗传算法
算法之类的不是很懂,但这是我的一个代码。我是这样想的。一个数组内,里面有N+1个整数。进行冒泡排序出最大的和最小的。之后循环这个数组去取和。
//冒泡排序出最大和最小 int temp; int[] noneSort = {30, 80, 80, 30, 88, 29, 88, 25, 25}; for(int i = 0; i < noneSort.length-1; i++){ for(int j = i + 1; j < noneSort.length; j++){ temp = noneSort[i]; if(noneSort[j] >= temp){ noneSort[i] = noneSort[j]; noneSort[j] = temp; } } } //输出打印 log.info("{}", noneSort); int maxNum = noneSort[0]; int minNum = noneSort[noneSort.length - 1]; int max = 0, min = 0; for(int i = 0; i < noneSort.length; i++){ if(noneSort[i] == minNum){ //如果等于最小值 min += noneSort[i]; }else if(noneSort[i] == maxNum){ //如果等于最大值 max += noneSort[i]; } } //输出打印 log.info("max: {}, min: {}", max, min);
结果就是如下:
[88, 88, 80, 80, 30, 30, 29, 25, 25] max: 176, min: 50
找最优解,可以看看遗传算法
算法之类的不是很懂,但这是我的一个代码。
我是这样想的。
一个数组内,里面有N+1个整数。
进行冒泡排序出最大的和最小的。
之后循环这个数组去取和。
结果就是如下: