Day09 java数组:Arrays类,冒泡排序,稀疏数组

Arrays

在这里插入图片描述

public static void main(String[] args) {
    int[] a={1,2,5,3,8,1};
    System.out.println(Arrays.toString(a));
    Arrays.sort(a);//数组排序
    System.out.println(Arrays.toString(a));
    Arrays.fill(a,0);//数组填充
    System.out.println(Arrays.toString(a));//[0, 0, 0, 0, 0, 0]
    Arrays.fill(a,2,4,0);//数组填充,第二位到第四位,包头不包尾
    System.out.println(Arrays.toString(a));//[1, 1, 0, 0, 5, 8]
}

冒泡排序

在这里插入图片描述

    public static void main(String[] args) {
        //冒泡排序
        //1.比较数组中,两个相邻的元素,如果第一个比第二个大,我们就交换位置
        //2.每一次比较,都会产生一个最大的,或者最小的数字;
        //3.下一轮则可以少一次排序
        //4.一次循环,直接结束

        int[] array = {1, 2, 5, 3, 8, 1};
        int temp = 0;
        //外层循环判断我们要走多少次
        for (int i = 0; i < array.length - 1; i++) {
            boolean flag=false;//通过flag标识位减少没有意义的比较
            //内层循环,比较判断两个数,如果第一个数比第二个数字大,则交换位置
            for (int j = 0; j < array.length - 1 - i; j++) {
                if (array[j] > array[j+1]) {
                    temp = array[j];
                    array[j] = array[j+1];
                    array[j+1] = temp;
                    flag=true;
                }
            }
            if (flag==false)
            {
                break;
            }

        }
        System.out.println(Arrays.toString(array));
    }

稀疏数组

在这里插入图片描述
在这里插入图片描述

public static void main(String[] args) {
    //1.创建一个二维数组11*11 0:没有棋子,1.黑棋2.白棋
    int[][] array1 = new int[11][11];
    array1[1][2] = 1;
    array1[2][3] = 2;
    //输出原始数组
    for (int[] a1 : array1) {
        for (int a2 : a1) {
            System.out.print(a2 + "\t");
        }
        System.out.println();
    }
    //转换为稀疏数组来保存
    //获取有效值的个数
    int sum = 0;
    for (int i = 0; i < 11; i++) {
        for (int j = 0; j < 11; j++) {
            if (array1[i][j] != 0)
                sum++;
        }
    }
    System.out.println("获取有效值的个数:"+sum);

    //2.创建一个稀疏数组的数组
    int[][] array2=new int[sum+1][3];
    array2[0][0]=11;
    array2[0][1]=11;
    array2[0][2]=sum;
    //遍历二维数组,将非零值,存放在稀疏数组
    int count=0;
    for (int i = 0; i < array1.length; i++) {
        for (int j = 0; j < array1[i].length; j++) {
            if (array1[i][j] != 0) {
                count++;
                array2[count][0] = i;//横坐标
                array2[count][1] = j;//纵坐标
                array2[count][2] = array1[i][j];//值
            }
        }
    }
    //输出稀疏数组
    for (int i = 0; i < array2.length; i++) {
            System.out.println(
                    array2[i][0]+"\t"
                    +array2[i][1]+"\t"
                    +array2[i][2]+"\t"
            );
    }
    System.out.println("=========");

    System.out.println("还原");
    //1.先读取稀疏数组值
    int[][] array3=new int[array2[0][0]][array2[0][1]];
    //2.给其中的元素还原它的值
    for (int i = 1; i < array2.length; i++) {
        array3[array2[i][0]][array2[i][1]]=array2[i][2];
    }
    //打印
    for (int[] a1 : array3) {
        for (int a2 : a1) {
            System.out.print(a2 + "\t");
        }
        System.out.println();
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Java中的Arrays提供了一个sort方法,可以用来对数组进行排序。该方法可以对任何型的数组进行排序,包括基本数据型和对象型。 使用Arrays的sort方法进行数组排序非常简单,只需要将要排序的数组作为参数传递给sort方法即可。例如,对一个整型数组进行排序的代码如下: int[] arr = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3}; Arrays.sort(arr); 在上面的代码中,我们定义了一个整型数组arr,并将其初始化为一个无序的数组。然后,我们调用Arrays的sort方法对该数组进行排序。排序后,数组arr中的元素将按照从小到大的顺序排列。 需要注意的是,Arrays的sort方法会改变原始数组的顺序,因此在排序之前需要备份原始数组,以免数据丢失。此外,如果要对对象数组进行排序,需要保证对象实现了Comparable接口或者传递一个Comparator对象作为参数。 总之,Arrays的sort方法是Java中非常实用的一个方法,可以方便地对数组进行排序。 ### 回答2: Java是一种功能强大且广泛使用的编程语言,ArraysJava提供的一个工具,其中sort方法是该中最常用的方法之一 ,主要用于数组排序。 数组排序可以使数列按照一定规则进行排序,使其便于查找和使用。Arrays中的sort方法可以将数组按照从小到大或从大到小的顺序进行排序,以便于使用。使用该方法需要注意以下几点。 1. 参数形式 该方法有两个参数形式:sort(int[] array)和sort(Object[] array)。第一个参数形式适用于整型数组,且数组中的元素应全部为整型。第二个参数形式适用于任意型的对象数组。使用该方法应根据实际情况选择适当的参数形式。 2. 排序顺序 sort方法默认按照升序(从小到大)的顺序排序数组。如果需要按降序(从大到小)排序,需要使用Arrays中提供的另一个重载方法sort(int[] array, int fromIndex, int toIndex, Comparator<? super Integer> c),并指定Comparator对象的方法来定义排序规则。 3. 排序性能 sort方法采用快速排序算法来进行排序,其时间复杂度为O(nlogn)。在排序大型数组时,该方法的效率较高,但在排序小型数组时,容易出现效率问题。因此,在对小型数组进行排序时,可使用Arrays中提供的另一个重载方法sort(int[] a, int fromIndex, int toIndex),该方法采用插入排序算法来进行排序,其时间复杂度为O(n^2),但在小型数组中的效率更高。 以上三点是Java数组Arrayssort方法之数组排序时需要注意的问题。在使用sort方法时,还需要根据实际情况灵活使用,以实现最佳的排序效果。 ### 回答3: java数组是一种能够存储一组具有相同数据型的元素的结构。在实际开发中,我们经常需要对数组进行排序操作,以实现更高效的数据处理。java提供了一种极其方便的数组排序方式,通过调用arrays的sort方法,可以对数组进行快速排序。 arraysjava.util包中的一个,主要提供了一系列与数组相关的操作方法。其中sort方法可以对数组进行排序,具体使用方法如下: ```java public static void sort(int[] a) //排序一个数组 public static void sort(int[] a, int fromIndex, int toIndex) //对一个数组的一部分进行排序 ``` 其中,第一个方法的参数是一个一维数组,该方法将会对整个数组进行排序;第二个方法的参数是一个一维数组、一个起始索引和一个结束索引。通过指定数组的起始和结束索引,可以仅对数组中的一部分元素进行排序。 在使用sort方法时,需要注意的是,排序前需要保证数组已经存储了需要排序的数据。如果数组中存在null元素,sort方法将会抛出NullPointerException异常。如果元素不是可比较型,例如数组中存储了自定义的对象型,sort方法将会抛出ClassCastException异常。 sort方法使用快速排序算法实现,具有较好的时间复杂度和空间复杂度。在实际开发中,常用的数组排序方式包括冒泡排序、插入排序、快速排序、归并排序等,每种排序方式都有不同的使用场景和优缺点。在使用sort方法时,需要根据实际情况选择合适的排序方式。 总之,arrays的sort方法提供了一种便捷的数组排序方式,可以大大提升java的数据处理效率。在实际应用中,我们可以根据需求和数据规模等因素,选择合适的排序方式,以实现更高效的数据处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值