JAVA编程300例_五.数组

目录

实例032:将二维数组的行列互换

实例033:利用数组随机抽取幸运观众

实例037:使用选择排序法对数组排序

实例038:使用冒泡排序法对数组排序

实例039:使用快速排序法对数组进行排序

实例040:使用直接插入法对数组排序

实例041:使用sort() 方法对数组排序

实例042:反转数组中元素的顺序


实例032:将二维数组的行列互换

package com.five;

public class Test_031 {

	public static void main(String[] args) {
		int[][] array1 = new int[][] {{1,2,3},{4,5,6},{7,8,9}};
		//输出二维数组
		printArray(array1);
		
		int[][] array2 = new int[array1.length][array1.length];
		for(int i = 0; i < array1.length; i++) {			//调整数组行列
			for(int j = 0; j < array1[i].length; j++) {
				array2[i][j] = array1[j][i];
			}
		}
		System.out.println("调整后的数组如下:");
		//输出调整后的二维数组
		printArray(array2);
	}
	
	public static void printArray(int[][] array){
		for(int[] in : array) {						//遍历第一层数组
			for(int i : in) {
				System.out.print(i + "\t");			//不换行打印一维数组元素
			}
			System.out.println();					//每打印一个一维数组进行一次换行
		}
	}
}

实例033:利用数组随机抽取幸运观众

package com.five;

public class Test_033 {

	public static void main(String[] args) {
		
		String[] array = new String[] {"张三","李四","王五","赵日天","叶天","叶凡"};
		int index = (int)(Math.random()*array.length);
		System.out.println("抽到的人员是:" + array[index]);
	}
}

实例037:使用选择排序法对数组排序

package com.five;

public class Test_037 {

	public static void main(String[] args) {
		
		//随机生成一个长度为10,范围为 1~100的一维数组:
		System.out.println("随机生成一个一维数组:");
		int[] array1 = new int[10];
		for(int i = 0; i < array1.length; i++) {
			array1[i] = (int)(Math.random()*100) + 1;
		}
		//打印这个一维数组
		printArray(array1);
		
		//对数组进行选择排序
		for(int index = 0; index < array1.length ;index++) {	
			int k = index;
			for(int j = index + 1; j < array1.length; j++) {		//找出最小值的下标
				if(array1[j] < array1[k]) {
					k = j;
				}
			}
			if(k > index) {											//将知道下标的最小值 放在首位
				array1[index] = array1[index] ^ array1[k];
				array1[k] = array1[index] ^ array1[k];
				array1[index] = array1[index] ^ array1[k];;
			}
			
		}
		printArray(array1);
	}
	
	public static void printArray(int[] array) {
		for(int i : array) {
			System.out.print(i + "\t");
		}
		System.out.println();										//换行
	}
}

实例038:使用冒泡排序法对数组排序

package com.five;

public class Test_038 {

public static void main(String[] args) {
		
		//随机生成一个长度为10,范围为 1~100的一维数组:
		System.out.println("随机生成一个一维数组:");
		int[] array1 = new int[10];
		for(int i = 0; i < array1.length; i++) {
			array1[i] = (int)(Math.random()*100) + 1;
		}
		//打印这个一维数组
		printArray(array1);
		
		//对数组进行冒泡排序法排序
		for(int index = 0; index < array1.length ;index++) {	
			for(int j = 0; j < array1.length - 1 ; j++) {
				if(array1[j] > array1[j + 1]) {
					array1[j] = array1[j] ^ array1[j + 1];
					array1[j+1] = array1[j] ^ array1[j + 1];
					array1[j] =  array1[j] ^ array1[j + 1];;
				}
			}
			
		}
		printArray(array1);
		
		
	}
	
	//打印一维数组
	public static void printArray(int[] array) {			
		for(int i : array) {
			System.out.print(i + "\t");
		}
		System.out.println();										//换行
	}
}

实例039:使用快速排序法对数组进行排序

实例040:使用直接插入法对数组排序

实例041:使用sort() 方法对数组排序

package com.five;

import java.util.Arrays;

public class Test_041 {

	public static void main(String[] args) {
		//随机生成一个长度为10,范围为 1~100的一维数组:
		System.out.println("随机生成一个一维数组:");
		int[] array1 = new int[10];
		for(int i = 0; i < array1.length; i++) {
			array1[i] = (int)(Math.random()*100) + 1;
		}
		//打印这个一维数组
		printArray(array1);
		Arrays.sort(array1);
		System.out.println("使用sort()方法排序后的数组是:");
		printArray(array1);

	}
	
	//打印一维数组
	public static void printArray(int[] array) {			
		for(int i : array) {
			System.out.print(i + "\t");
		}
		System.out.println();										//换行
	}
}

实例042:反转数组中元素的顺序

package com.five;

public class Test_042 {

	public static void main(String[] args) {
		//随机生成一个长度为10,范围为 1~100的一维数组:
		System.out.println("随机生成一个一维数组:");
		int[] array = new int[10];
		for(int i = 0; i < array.length; i++) {
			array[i] = (int)(Math.random()*100) + 1;
		}
		//打印这个一维数组
		printArray(array);
		
		//反转数组元素顺序
		for(int i = 0 ; i < array.length/2; i++) {
			array[i] = array[i] ^ array[array.length - i - 1];
			array[array.length - i - 1] = array[i] ^ array[array.length - i - 1];
			array[i] = array[i] ^ array[array.length - i - 1];
		}
		
		//打印反转后的数组
		System.out.println("反转后的数组是:");
		printArray(array);
	}
	
	//打印一维数组
	public static void printArray(int[] array) {			
		for(int i : array) {
			System.out.print(i + "\t");
		}
		System.out.println();										//换行
	}
}

 

你可能感兴趣的:(Java,经典编程300例)