您的位置:首页 > 理论基础 > 数据结构算法

数据结构与算法分析2-28

2020-08-24 20:30 1121 查看

使用正数的数组a设计有效的算法以确定:

没考虑i==j

import java.util.Arrays;
import java.util.Random;

public class 计算数组中两数之和最大值 {
public static void main(String[] args) {
int[] arr = new int[10];
for (int i = 0; i < arr.length; i++) {
arr[i] = new Random().nextInt(100) + 1;
}
// arr = new int[] { 11, 9, 8, 7, 6, 5, 4, 3, 2, 1 };
System.out.println(Arrays.toString(arr));
System.out.println(sum(arr));
System.out.println(minus(arr));
System.out.println(times(arr));
System.out.println(de(arr));
}

public static int sum(int[] arr) {
int a = arr[0];
int b = arr[1];
for (int i = 2; i < arr.length; i++) {
if (arr[i] > a) {
b = b > a ? b : a;
a = arr[i];
} else if (arr[i] > b) {
b = arr[i];
}
}
return a + b;
}

public static int minus(int[] arr) {
int high = arr.length - 1;
int low = 0;
int minus = arr[high] - arr[low];
for (int i = 1; i < arr.length; i++) {
if (arr[i] - arr[low] > minus) {
high = i;
minus = arr[high] - arr[low];
}
if (arr[i] < arr[low]) {
low = i;
}
}
return minus;
}

public static int times(int[] arr) {
int a = arr[0];
int b = arr[1];
for (int i = 2; i < arr.length; i++) {
if (arr[i] > a) {
b = b > a ? b : a;
a = arr[i];
} else if (arr[i] > b) {
b = arr[i];
}
}
return a * b;
}

public static double de(int[] arr) {
int high = arr.length - 1;
int low = 0;
double de = (double) arr[high] / arr[low];
for (int i = 1; i < arr.length; i++) {
if ((double) arr[i] / arr[low] > de) {
high = i;
de = (double) arr[high] / arr[low];
}
if (arr[i] < arr[low]) {
low = i;
}
}
return de;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: