美文网首页
数组及排序算法

数组及排序算法

作者: RLM233 | 来源:发表于2017-09-07 22:17 被阅读0次

    1.数组概述

    • 数组是存储同一种数据类型多个元素的集合,也可以看成是一个容器。
    • 数组既可以存储基本数据类型,也可以存储引用数据类型。
    • 数组可以存储多个数据,而且可以对数据编号,从0开始,操作元素可以通过编号(下表、索引)完成。

    2.数组的定义方式:

    //方式一:元素类型[] 数组名=new 元素类型[数组的长度]
    int[] arr=new int[5];
    arr[0]=7;
    arr[1]=5;
    arr[2]=9;
    arr[3]=3;
    arr[4]=8;
    
    //方式二
    int a[]={10,20,32,30,40};
    
    //方式三
    int a[]=new int[]{10,20,32,30,40};
    
    //方式四
    int a[];
    a=new int[5];
    a[0]=10;
    a[1]=20;
    a[2]=21;
    a[3]=32;
    a[4]=40;
    

    3.数组操作常见错误

    • ArrayIndexOutOfBoundsException:数组索引越界异常
    • NullPointerException:空指针异常,原因:数组已经不在指向堆内存了。而你还用数组名去访问元素。
    int[] arr = {1,2,3};
    arr = null;
    System.out.println(arr[0]);
    

    4.数组求和

    public class ArraySum {
        public static void main(String[] args) {
            int[] arr1 = { 1, 2, 3, 4, 5 };
            int sum = arrSum(arr1);
            System.out.println(sum);
        }
    
        public static int arrSum(int[] arr) {
            int sum = 0;
            for (int i = 0; i < arr.length; i++) {
                sum = +arr[i];
            }
            return sum;
        }
    }
    
    public class ArraySum2 {
        public static void main(String[] args) {
            int[] arr = { 1, 2, 3, 4, 5 };
            int sum = 0;
            for (int i = 0; i < arr.length; i++) {
                sum += arr[i];
            }
            System.out.println(sum);
        }
    }
    

    5.数组求最大值

    public class ArrayMax {
        public static void main(String[] args) {
            int[] arr1 = { 56, 135, 67, 87, 89, 88 };
            int max = getMax(arr1);
            System.out.println(max);
        }
    
        public static int getMax(int[] arr) {
            //定义变量,初始化数组中的任意一个元素
            int max = arr[0];
            //数组遍历
            for (int i = 1; i < arr.length; i++) {
                if (arr[i] > max) {
                    max = arr[i];
                }
            }
            return max;
        }
    }
    
    public class ArrayMax {
        public static void main(String[] args) {
            int[] arr1 = { 56, 135, 67, 87, 89, 88 };
            int max = getMax(arr1);
            System.out.println(max);
        }
        
        public static int getMax(int[] arr) {
            //初始化数组中的任意一个角标
            int max = 0;
            for (int i = 1; i < arr.length; i++) {
                if (arr[i] > arr[max]) {
                    max = i;
                }
            }
            return arr[max];
        }
    }
    

    6.选择排序

    选择排序图解
    public class ArrayTest {
        public static void main(String[] args) {
            int[] arr = { 12, 9, 23, 77, 6, 34 };
            for (int x = 0; x < arr.length - 1; x++) {
                for (int y = x + 1; y < arr.length; y++) {
                    if (arr[x] > arr[y]) {
                        int temp = arr[x];
                        arr[x] = arr[y];
                        arr[y] = temp;
                    }
                }
            }
            
            for (int i = 0; i < arr.length; i++) {
                System.out.println(arr[i]);
            }
    
        }
    }
    

    7.冒泡排序

    冒泡排序图解
    public class BubbleSort {
        public static void main(String[] args) {
            int[] arr = { 12, 9, 23, 77, 6, 34 };
            for (int x = 0; x < arr.length - 1; x++) {
                for (int y = 0; y < arr.length - 1 - x; y++) {
                    if (arr[y] > arr[y + 1]) {
                        int temp = arr[y];
                        arr[y] = arr[y + 1];
                        arr[y + 1] = temp;
                    }
                }
            }
            for (int i = 0; i < arr.length; i++) {
                System.out.println(arr[i]);
            }
        }
    }
    

    8.调用Arrays.sort()方法排序

    import java.util.Arrays;
    
    public class BubbleSort {
        public static void main(String[] args) {
            int[] arr = { 12, 9, 23, 77, 6, 34 };
            Arrays.sort(arr);
            for(int i=0;i<arr.length;i++){
                System.out.println(arr[i]);
            }
        }
    }
    

    相关文章

      网友评论

          本文标题:数组及排序算法

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