将二维数组中的行列互换
public class Test {
public static void main(String[] args) {
int arr[][] = new int[][] { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };
System.out.println("行列互调前:");
// 输出二维数组
printArray(arr);
int arr2[][] = new int[arr.length][arr.length];
for (int i = 0; i < arr.length; i++) {// 调整数组行列数据
for (int j = 0; j < arr[i].length; j++) {
arr2[i][j] = arr[j][i];
}
}
System.out.println("行列互调后:");
// 输出行列互调后的二维数组
printArray(arr2);
}
/**
* 遍历数组并输出数组的全部元素
*/
private static void printArray(int[][] arr) {
for (int i = 0; i < arr.length; i++) {// 遍历数组
for (int j = 0; j < arr.length; j++) {
System.out.print(arr[i][j] + " ");// 不换行输出数组元素
}
System.out.println(); //换行
}
}
}
将一个任意整数插入到已排列的整型数组中,插入后,数组中的数仍保持有序
import java.util.Scanner;
public class SelectSort {
public static void main(String[] args) {
//將输入的数字插入到一个有序的数组中的合适位置
Scanner input = new Scanner(System.in);
System.out.println("请输入一个数字:");
int num = input.nextInt();
//有序的整型数组
int[] nums = {20,23,50,53,65,68};
//1,找到合适的位置 索引
int index = nums.length;
for(int i = 0;i < nums.length;i++){
if(nums[i] > num){
index = i;
break;
}
}
//进行新数组的构建,在index之前直接复制,index则是输入数字的位置,
//index之后的每一位元素后移
int[] newNums = new int[nums.length+1];
for(int i = 0;i<newNums.length;i++){
if(i < index){
newNums[i] = nums[i];
}else if(i == index){
newNums[i] = num;
}else{
newNums[i] = nums[i - 1];
}
}
//输出新数组
System.out.println("插入后的结果");
for(int i = 0;i<newNums.length;i++){
System.out.println(newNums[i]);
}
}
}
冒泡排序
import java.util.Random;
/*
* 数组排序冒泡排序:
*/
public class ArrayTest1 {
public static void main(String[] args) {
//创建一个数组
int[] arr = new int[5];
//创建随机数对象
Random rd = new Random();
for (int i = 0; i < arr.length; i++) {
//获取1-10的随机数
int num = rd.nextInt(10)+1;
//对数组进行赋值
arr[i] = num;
}
System.out.println("数组排序前:");
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+" ");
}
//对数组进行排序,冒泡排序
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr.length-1-i; j++) {
//进行判断,如果前面的大于后面是不是进行互换,这里要用到中间变量
if (arr[j]>arr[j+1]) {
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
System.out.println();
System.out.println("数组排序后:");
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+" ");
}
}
}
选择排序
import java.util.Random;
/*
* 数组排序选择排序:
*/
public class ArrayTest2 {
public static void main(String[] args) {
// 定义一个数,动态初始化
int[] arr = new int[5];
// 创建生成随机数的对象
Random rd = new Random();
// 对数组进行赋值
for (int i = 0; i < arr.length; i++) {
// 获取1-100的随机数
int num = rd.nextInt(100) + 1;
arr[i] = num;
}
// 打印
System.out.println("数组未排序前:");
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
// 对数组进行排序,选择排序
for (int i = 0; i < arr.length; 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();
// 打印
System.out.println("数组排序后:");
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
}
}