同时求数列的最大值与最小值
来源:互联网 发布:淘宝突然收不到消息了 编辑:程序博客网 时间:2024/06/04 20:03
package agrisom;
/**
* 同时求最大值与最小值
*/
public class FindMaxAndMin {
public void findMaxAndMin(int [] array){
int length=array.length;
int max,min;
if(length==0){
System.out.println("array empty");
System.exit(1);
}else if(length==1){
max=min=array[0];
}else if(length==2){
max=array[0]>array[1] ? array[0] : array[1];
min=array[0]>array[1] ? array[1] : array[0];
}
int i;
if((length & 1)==1){ //数组长度为奇数
max=min=array[0];
i=1;
}else{ //数组长度为偶数
max=array[0]>array[1] ? array[0] : array[1];
min=array[0]>array[1] ? array[1] : array[0];
i=2;
}
for(;i<length;i+=2){
if(array[i] > array[i+1]){
max=max<array[i] ? array[i] : max;
min=min>array[i+1] ? array[i+1] : min;
}else{
max=max<array[i+1] ? array[i+1] : max;
min=min>array[i] ? array[i] : min;
}
}
System.out.println("max: "+max);
System.out.println("min: "+min);
}
public static void main(String [] args){
FindMaxAndMin fmm=new FindMaxAndMin();
fmm.findMaxAndMin(new int []{4,3,6,9,1,56,22});
fmm.findMaxAndMin(new int []{4,3,6,9,1,56});
fmm.findMaxAndMin(new int []{4,3});
fmm.findMaxAndMin(new int []{2});
fmm.findMaxAndMin(new int []{});
}
}
/**
运行结果:
max: 56
min: 1
max: 56
min: 1
max: 4
min: 3
max: 2
min: 2
array empty
*/
/**
* 同时求最大值与最小值
*/
public class FindMaxAndMin {
public void findMaxAndMin(int [] array){
int length=array.length;
int max,min;
if(length==0){
System.out.println("array empty");
System.exit(1);
}else if(length==1){
max=min=array[0];
}else if(length==2){
max=array[0]>array[1] ? array[0] : array[1];
min=array[0]>array[1] ? array[1] : array[0];
}
int i;
if((length & 1)==1){ //数组长度为奇数
max=min=array[0];
i=1;
}else{ //数组长度为偶数
max=array[0]>array[1] ? array[0] : array[1];
min=array[0]>array[1] ? array[1] : array[0];
i=2;
}
for(;i<length;i+=2){
if(array[i] > array[i+1]){
max=max<array[i] ? array[i] : max;
min=min>array[i+1] ? array[i+1] : min;
}else{
max=max<array[i+1] ? array[i+1] : max;
min=min>array[i] ? array[i] : min;
}
}
System.out.println("max: "+max);
System.out.println("min: "+min);
}
public static void main(String [] args){
FindMaxAndMin fmm=new FindMaxAndMin();
fmm.findMaxAndMin(new int []{4,3,6,9,1,56,22});
fmm.findMaxAndMin(new int []{4,3,6,9,1,56});
fmm.findMaxAndMin(new int []{4,3});
fmm.findMaxAndMin(new int []{2});
fmm.findMaxAndMin(new int []{});
}
}
/**
运行结果:
max: 56
min: 1
max: 56
min: 1
max: 4
min: 3
max: 2
min: 2
array empty
*/
- 同时求数列的最大值与最小值
- 求最大值与最小值
- 同时求数组的最大值和最小值的分治算法
- 【算法导论】同时求数组的最大值和最小值
- 一个求最大值与最小值的函数
- 一个求最大值与最小值的函数
- java求数列中的最大值和最小值
- 同时查询出最大值与最小值
- 求一列数字的分区最大值与最小值
- 求一列数字的分区最大值与最小值
- 线段树求区间最大值与最小值的差
- 写了一个求最大值与最小值的函数
- 一行代码求数组的最大值与最小值
- js中求数组的最大值与最小值
- 同时找出数组的最大值和最小值
- 【HDU3530】【单调队列(双)】Subsequence 【长度为n的数列,求最长子区间的长度,使得区间的最大值与最小值的差满足一个范围】
- 基础算法(1):最值(最大值,最小值,同时求最大值和最小值)
- 基础算法(1):最值(最大值,最小值,同时求最大值和最小值)
- dapm机制
- POJ 1011的一道题(木棍组合)
- 心得8--重定向详解、控制浏览器定时刷新网页详解及response细节
- linux 显式调用 自己写的动态库
- Ffmpeg快速命令使用 Ffmpeg选项详解 Ffmepg格式详解 常见视频文件格式详解
- 同时求数列的最大值与最小值
- Java断点续传
- 关于ffmpeg 的总结(一个linux 下 集 屏幕录像录音,音频视频转换,合并音频视频文件,格式转换于一身的命令)
- linux进程间通信(一)
- Java.io包学习-获取文件的父目录
- 心得9--三步教你自己一个验证码工具
- Flash as3 创建文本框
- Ubuntu下的Flex/AIR开发环境
- 博主论文列表