您的位置:首页 > 其它

算法题:找出同一个序列中的最大值和最小值

2015-01-27 22:25 267 查看
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);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐