package arithmetic;
/**
* 同时找出一个序列中最大值和最小值
* 分两种情况:(1)序列只有两个元素
* (2)序列有多个元素,有多个元素分别从序列的两端开始查找
* @author SHI
*/
public class MaxAndMin {
public static void main(String[] args) {
int[] a = { 122, 41, 4, 5, 7, 2, 89, 122, 34, 56 };
int low = 0;
int high = a.length - 1;
int max = 0;
int min = 0;
// 序列就只有两个元素
if (a[0] < a[high] && a.length == 2) {
min = a[0];
max = a[high];
} else {
min = a[high];
max = a[max];
}
// 序列中有多个元素存在,思想:从序列的两端开始遍历
while (++low <= --high) {
if (a[low] <= a[high]) {
if (a[low] < min) {
min = a[low];
}
if (a[high] > max) {
max = a[high];
}
} else {
if (a[low] > max) {
max = a[low];
}
if (a[high] < min) {
min = a[high];
}
}
}
System.out.println(max + " " + min);
}
}