目录
实例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(); //换行
}
}