一、题目
有一个长度为7的无序数组,按照从小到大的顺序排序后输出。
输入描述:
💡有一个长度为7的无序数组,按照从小到大的顺序排序后输出。
输出描述:
💡有一个长度为7的无序数组,按照从小到大的顺序排序后输出。
二、思考
三、代码
原代码:
public static void main(String[] args) {
//输入
Scanner scanner = new Scanner(System.in);
int[] arr = new int[7];
for (int i = 0; i < arr.length; i++) {
arr[i] = scanner.nextInt();
}
//排序
for (int i = 0; i < arr.length-1; i++) {
for (int j = 0; j < arr.length-1-i; j++) {
if(arr[j] > arr[j+1]) {
arr[j] = arr[j] ^ arr[j+1];
arr[j+1] = arr[j] ^ arr[j+1];
arr[j] = arr[j] ^ arr[j+1];
}
}
}
//输出
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+" ");
}
}
优化代码:
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
//输入
Scanner scanner = new Scanner(System.in);
int[] arr = new int[7];
for (int i = 0; i < arr.length; i++) {
arr[i] = scanner.nextInt();
}
//排序
for (int i = 0; i < arr.length-1; i++) {
boolean flag = true;
for (int j = 0; j < arr.length-1-i; j++) {
if(arr[j] > arr[j+1]) {
arr[j] = arr[j] ^ arr[j+1];
arr[j+1] = arr[j] ^ arr[j+1];
arr[j] = arr[j] ^ arr[j+1];
flag = false;
}
}
if(flag) {
break;
}
}
//输出
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+" ");
}
}
}