13-二维数组和排序

13-二维数组和排序

  • 二维数组: 数组里面存放的数组,二维数组里面存放的是另一个数组的引用
1. 静态赋值
int[][] array = {{11,22,33},{44,55,66},{77,8}};
2. 动态赋值
数组的数据类型[][] 二维数组名 = new 数组的数据类型[数组的引用长度][数组元素长度];
public class ArrayDemo01 {

	public static void main(String[] args) {
		int [] array = new int [2];  //一维数组
		int[][] arrayA = new int [2][3];
		System.out.println(array);
		System.out.println(arrpu'bay[0]);
		System.out.println(arrayA);
		System.out.println(arrayA[0]);
		
		int[] arr = {11,22};
		arrayA[1] = arr;
		System.out.println(arr);
		System.out.println(arrayA);	
	}
}
  • 数组的遍历
public class ArrayDemo2 {
  public static void main(String[] args){
    int[][] array = {{11,22,33},{44,55,66},{77,8}};
    //
    for(int i=0;i<array.length;i++){		//一维数组
      for(int j=0;j<array[i].length;j++){		//二维数组
        System.out.print(array[i][j]);
      }
      System.out.println();
    }
    //foreach遍历数组
    for(int[] i:array){
      for(int j:i){
        System.out.print(j+"\t");
      }
      System.out.println();
    }
  }
}
  • 插入算法:

    主要用于一个数组中,需要将新输入的数按照大小顺序插入到数组中

import java.util.Arrays;
import java.util.Scanner;

/**
 * 插入算法:
 * 	
 * @author Administrator
 *
 */
public class ArrayDemo01 {
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		
		//[1]两个数组
		int [] oldArray = {12,23,34,45,56};
		int [] newArray = new int [oldArray.length+1];   //新数组比原数组多1
		
		//[2]循环赋值
		for(int i = 0;i<oldArray.length;i++){
			newArray[i]=oldArray[i];
		}
		
		System.out.println(Arrays.toString(newArray));   //toString :遍历数组
		
		//[3]循环比较
		int number =input.nextInt();   //要插入的数据
		int index =0;  //记录要插入的下边(默认下标为最大下标)
		//开始比较
		for(int i =0;i<newArray.length;i++){
			if(newArray[i]>number){  
				index=i;     
				break;
			}
		}
		//[4]找到位置,移动其他的数据位置
		for(int i = newArray.length-1;i>index;i--){
			newArray[i]= newArray[i-1];
		}
		//[5]插入数据
		newArray[index] = number;
		System.out.println(Arrays.toString(newArray));
	}
}
  • 冒泡排序
import java.util.Arrays;

/**
 * 冒泡排序:
 *      n个数字来排队
 * 		两两相比小靠前
 * 		外层循环N-1
 * 		内层循环n-1-i
 * 
 * @author Administrator
 *
 */
public class ArrayDemo02 {

	public static void main(String[] args) {
		int [] arry = {12,34,66,23,1};
		System.out.println(Arrays.toString(arry));
		
		//排序
		for(int i = 0;i<arry.length-1;i++){   //外层循环    n-1
			for(int j = 0;j<arry.length-1-i;j++){     //内层循环   n-1-i
				if(arry[j]>arry[j+1]){   
					//交换
					int temp = arry[j];
					arry[j] = arry[j+1];
					arry[j+1]=temp;
				}
			}
		}
				System.out.println("排序后:\n"+Arrays.toString(arry))}
}

  • 选择排序
import java.util.Arrays;

/***
 * 选择排序:
 * 	
 * @author Administrator
 *
 */
public class ArrayDemo03 {

	public static void main(String[] args) {
		//创建数组
		int [] arr = {44,22,11,33};
		
		//排序
		for(int i = 0;i<arr.length-1;i++){       //轮
			for(int j = i+1;j<arr.length;j++){
				
				if(arr[i]>arr[j]){
					//交换
					int temp = arr[i];
					arr[i] = arr[j];
					arr[j]=temp;
					
				}
			}
		}
		System.out.println("排序\n"+Arrays.toString(arr));
		
	}
	
}

猜你喜欢

转载自blog.csdn.net/qq_26270869/article/details/90055184