首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

编程之好_009寻找数组中的最大值和最小值

2013-01-23 
编程之美_009寻找数组中的最大值和最小值//寻找数组中的最大值和最小值public class Test{// 需要查找的数

编程之美_009寻找数组中的最大值和最小值

//寻找数组中的最大值和最小值public class Test{    // 需要查找的数组    static int[] arr =    {            9, 5, 1, 8, 2, 3, 4, 6, 7    };    // 数组的长度    static int maxIndex = arr.length - 1;    public static void main(String[] args)    {        // find1(arr);        // find2(arr);        // find3(arr);        find4(arr);    }    // 1.排序数组,比较 n*n次    static void find1(int[] arr)    {        Arrays.sort(arr);        System.out.println("find1\t最小值:" + arr[0] + ",最大值:" + arr[maxIndex]);    }    // 2.扫描一遍数组找出最大数,最小数,比较2n次    static void find2(int[] arr)    {        int maximum = arr[0];// 最大值        int minimum = arr[0];// 最小值        for (int i = 0; i <= maxIndex; i++)        {            if (minimum > arr[i])            {                minimum = arr[i];            }            if (maximum < arr[i])            {                maximum = arr[i];            }        }        System.out.println("find2\t最小值:" + minimum + ",最大值:" + maximum);    }    // 3.数组挨着的两位分为一组,比较大小,小的在下标为偶数的位置,大的在下标为奇数的位置;然后从偶数位置查找最小值,从奇数位置查找最大值;    // 比较1.5n次    static void find3(int[] arr)    {        int temp;        for (int i = 0; i <= maxIndex - 1; i += 2)        {            if (arr[i] > arr[i + 1])            {                temp = arr[i];                arr[i] = arr[i + 1];                arr[i + 1] = temp;            }        }        System.out.println("两个一组排序后数组:" + Arrays.toString(arr));        int maximum = arr[0];// 最大值        int minimum = arr[0];// 最小值        for (int i = 0; i <= maxIndex - 1; i++)        {            // 偶数位搜索最小值            if (minimum > arr[i])            {                minimum = arr[i];            }            ++i;            // 奇数位搜索最大值            if (maximum < arr[i])            {                maximum = arr[i];            }        }        System.out.println("find3\t最小值:" + minimum + ",最大值:" + maximum);    }}

2楼adam_zs昨天 11:35
[code=java]n // 4.max存储大数,min存储小数,然后数组两个分成一组,大的和max比较,小的和min比较,比较次数:1.5n次n static void find4(int[] arr)n {n int maximum = arr[0];// 最大值n int minimum = arr[0];// 最小值n for (int i = 0; i <= maxIndex - 1; i++)n {n // 比较相邻两个数大小n if (arr[i] > arr[i + 1])n {n // 比较大数n if (arr[i] > maximum)n {n maximum = arr[i];n }n }n elsen {n // 比较小数n if (arr[i] < minimum)n {n minimum = arr[i];n }n }n }n System.out.println("find4\t最小值:" + minimum + ",最大值:" + maximum);n }n[/code]
1楼adam_zs昨天 11:33
[code=java]n修正:n // 数组的最大下标n static int maxIndex = arr.length - 1;n[/code]

热点排行