美文网首页
4.数组算法相关

4.数组算法相关

作者: RockShi | 来源:发表于2018-05-02 16:15 被阅读0次

    1.求数值型数组的最大值、最小值、总和、平均数

                int[] arr = new int[] { 4, 3, 6, 8, 2, -98, 0, -66, 76 };

                // 求数组元素的最大值

                int maxValue = arr[0];

                for (int i = 1; i < arr.length; i++) {

                    if (maxValue < arr[i]) {

                        maxValue = arr[i];

                    }

                }

                System.out.println("最大值为:" + maxValue);

            // 求数组元素的总和

                int sum = 0;

                for (int i = 0; i < arr.length; i++) {

                    sum += arr[i];

                }

                System.out.println("总和为:" + sum);

                // 求数组元素的平均数

                int avg = sum / arr.length;

                System.out.println("平均数为:" + avg);


    2.数组的反转 和 复制

        //2.1数组的反转:

                // 方式一:

                // for(int x = 0,y = arr.length - 1;x < y;x++,y--){

                                // int temp = arr[x];

                                // arr[x] = arr[y];

                                // arr[y] = temp;

                // }

               // 方式二

                for (int i = 0; i < arr.length / 2; i++) {

                        int temp = arr[i];

                        arr[i] = arr[arr.length - 1 - i];

                        arr[arr.length - 1 - i] = temp;

                   }

                //Sring str = "abcdefg";-->"gfedcba"

            //2.2数组的复制,得到新的数组:array

            // 复制不同于赋值。赋值操作为:array = arr;

                int[] array = new int[arr.length];

                for (int i = 0; i < array.length; i++) {

                        array[i] = arr[i];

                }

    //将array1的地址值赋给array2,并没有实现数组的复制!    

    赋值

    //实现对array1数组的复制

    数组复制

    3.数组的排序

            插入排序

            直接插入排序、折半插入排序、Shell排序

            交换排序

            冒泡排序、快速排序(或分区交换排序)

            选择排序

            简单选择排序、堆排序

            归并排序

            基数排序

    // 使用冒泡排序实现数组的从小到大排序

    /*for (int i = 0; i < arr.length - 1; i++) {

            for (int j = 0; j < arr.length - 1 - i; j++) {

                    if (arr[j] > arr[j + 1]) {

                        int temp = arr[j];

                        arr[j] = arr[j + 1];

                        arr[j + 1] = temp;

                    }

                }

        }*/


    //操作数组的工具类:Arrays

    Arrays.sort(arr);//底层使用的实际是快速排序。

    相关文章

      网友评论

          本文标题:4.数组算法相关

          本文链接:https://www.haomeiwen.com/subject/emecrftx.html