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个整数。
进行冒泡排序出最大的和最小的。
之后循环这个数组去取和。
结果就是如下: