数组的创建,复制以及排序

  • 数组的结构

    • 数据类型[] 变量名 = new 数据类型[数组长度]

    • 数组的创建语法

      • 先声明再分配空间 例如

        int[] atu ;
        atu = new int[2];
        
      • 声明并分配空间

        int[] atu = new int[4] ;
        
      • 声明并赋值(蘩)JVM自己根据{}里面的值来判断数组的长度

        int[] atu = new int[]{1,3,31,1,6};
        
      • 声明并赋值(简)显示初始化,注意不能换行

        int[] atu = {3 ,423, 32, 2, 3, 2}
        
  • 数组的复制

    • 手动复制 : 利用循环一个一个的复制

      int[] a = {4,3,2,1} ;
      int[] b = new int[4] ;
      for(int i = 0 ; i < a.length ; i ++ ){
          b[i] = a[i] ;
      }
      
    • 利用JDK自带的方法

      • **System.arraycopy(**原数组,原数组起始,新数组,新数组起始,长度);
      int[] a = {2,43,46,26,256,24,9};
      int[] b = new int[10] ;
      System.arraycopy(a,0,b,0,a.length);
      
      • java.util.Arrays.copyOf(原数组, 新长度);//返回带有原值的新数组。
      int[] a = {2,43,46,26,256,24,9};
      int[] b = java.util.Arrays.copyOf( a,6);
      
  • 数组的排序

    • 冒泡排序: 利用的是双循环,加中间变量来完成

      在内循环中,第一次会把最大的,或者最小的放在最边的位置,因此,该元素不需要参与下次的比较

      		int[] a = {12,213,4211,11,2,21,3} ;
      		
      		for(int i = 0 ; i < a.length-1  ; i++) { //外循环代表循环次数
      			for(int j = 0 ; j < a.length-i-1; j++) { //内循环控制排序  注意j的取值范围,容易出现空指针异常。
      				if(a[j] > a[j+1] ) { // 注意要求是升序还是降序,把握好>  < 
      					int temp = a[j] ;   // temp 中间变量
      					a[j] = a[j + 1];
      					a[j + 1] = temp ;
      				}
      			}
      		}
      

    在这里插入图片描述

    • 选择排序

      • 第一轮,用下标为零的元素与其他的元素比较,然后把较小的放在下标为零的位置,一轮下来之后,下标为零的元素就是数组中最小的一个元素。

      • 因为第一轮的时候,把最小的放在了下标为零的位置,因此,第二轮从下标为1 的位置开始比较,依次类推。

      • 当到达最后 的两个元素的时候,元素的比较只需要最后 的两个元素比较,因此,j的取值范围为i+1是最后一个元素的下标最为合适。

      		int[] a = {12,213,4211,11,2,21,3} ;
      		
      		for(int i = 0 ; i < a.length-1  ; i++) {
      			for(int j = i ; j < a.length-1; j++) { 
      				if(a[i] > a[j+1]) {
      					int temp = a[i] ;
      					a[i] = a[j + 1] ;
      					a[j+1] = temp ;		//把较小的放在a[i]
      				}
      			}
      		}
      		
      		for(int i = 0 ; i < a.length ; i++) {
      			
      			System.out.println(a[i]);
      			
      		}
      
    • JDK自带的方法排序

      java.util.Arrays.sort(数组名) 用法如下

      		int[] a = {12,213,4211,11,2,21,3} ;
      		
      		java.util.Arrays.sort(a);  //升序
      		
      		for(int i = 0 ; i < a.length ; i++) {
      			
      			System.out.println(a[i]);
      			
      		}
      
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值