4.数组算法相关

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);//底层使用的实际是快速排序。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 排序算法说明 (1)排序的定义:对一序列对象根据某个关键字进行排序; 输入:n个数:a1,a2,a3,…,an 输...
    code武阅读 682评论 0 0
  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,776评论 0 33
  • 4H 四小时一级线段,小婵发出背离信号,通道下轨附近做多。
    瑞祺阅读 211评论 0 0
  • 作者:seki 人们对一个事物产生对应的认知和评价,是一件非常理所当然的事情。 之所以说是理所当然,就是不论在外在...
    多多半的小苏西阅读 376评论 0 0
  • 寝门早立雪,屋中有冻结。 琼芳挥衣袖,玉絮舞千曲。 银砂渡瑞叶,璇花饰玉蝶。 乾兩风忽絮,寒英皆瓢零。
    郝若歆阅读 146评论 1 2