Java代码
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int length = sc.nextInt(); // 数组长度
int[] nums = new int[length];
// 初始化元素
for (int i = 0; i < length; i++) {
nums[i] = sc.nextInt();
}
// 冒泡排序
bubbleSort(nums);
// 打印元素
for (int i : nums) {
System.out.print(i + " ");
}
}
// 元素位置交换
public static void bubbleSort(int[] nums) {
// 两个数之间比较一次,比如 1 和 2 之间,只比较1次,即length - 1
int compare = nums.length - 1;
// 外层循环控制:遍历次数
for (int i = 0; i < compare; i++) {
boolean swapped = false; // 表示是否交换
// 内层循环控制:交换相邻元素
for (int j = 0; j < compare - i; j++) {
// 顺序错误交换元素
if (nums[j] > nums[j + 1]) {
int temp = nums[j];
nums[j] = nums[j + 1];
nums[j + 1] = temp;
swapped = true; // 发生交换
}
}
// 当原输入序列就是排序好的情况下,如果本轮没有交换,则提前结束排序
if (!swapped) {
break;
}
}
}
}