从一堆无序数中选出最大最小值

来源:互联网 发布:如何彻底删除手机数据 编辑:程序博客网 时间:2024/04/30 21:15
/** * MaxMin.java */package Algorithm;import java.util.Arrays;import org.junit.Test;/** * @Author: chenxiaoyu * @Date:   2013-8-1上午11:04:49 * @Description: */public class MaxMin {static int[] array = new int[]{1,2,4,6,3,8,9,0};static int MaxIndex = array.length - 1;// 1.排序数组,比较 n*n次  @Testpublic void Test(){Arrays.sort(array);System.out.println(array[MaxIndex] + " " + array[0]);}// 2.扫描一遍数组找出最大数,最小数,比较2n次  @Testpublic void travseTest(){int max = array[0];int min = array[0];for(int i=1; i<=MaxIndex; i++){if(array[i] > max){max = array[i];}else if(array[i]<min){min = array[i];}}System.out.println(max + " " + min);}//3.max存储大数,min存储小数,然后数组两个分成一组,大的和max比较,小的和min比较,比较次数:1.5n次@Testpublic void pairTest(){int max = array[0];int min = array[0];int begin = array.length % 2 == 0?0:1;for(int i=begin; i<=MaxIndex-1; i+=2){if(array[i] > array[i+1]){if(array[i] > max){max = array[i];}if(array[i+1]< min){min = array[i+1];}}else{if(array[i+1] > max){max = array[i+1];}if(array[i]< min){min = array[i];}}}System.out.println(max + " " + min);}}