Description
实现冒泡排序。
Input
输入的每一行表示一个元素为正整数的数组,所有值用空格隔开,第一个值为数值长度,其余为数组元素值。
Output
输出的每一行为排序结果,用空格隔开,末尾不要空格。
Sample Input 1
13 24 3 56 34 3 78 12 29 49 84 51 9 100
Sample Output 1
3 3 9 12 24 29 34 49 51 56 78 84 100
package org.alphacat.first;
import java.util.Scanner;
public class BubbleSort {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
while (scan.hasNext()) {
int n = scan.nextInt();
int[] nums = new int[n];
for (int i = 0; i < n; i++) {
int num = scan.nextInt();
nums[i] = num;
}
boolean isChange = false;
for (int i = 0; i < n; i++) {
isChange = false;
for (int j = i + 1; j < n; j++) {
if (nums[i] > nums[j]) {
swap(nums, i, j);
isChange = true;
}
}
if (!isChange) {
break;
}
}
print(nums);
}
}
private static void swap(int[] arr, int i, int j) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
private static void print(int[] arr) {
StringBuilder sb = getStringBuilder(arr);
System.out.print(sb.toString());
}
private static void println(int[] arr) {
StringBuilder sb = getStringBuilder(arr);
System.out.println(sb.toString());
}
private static StringBuilder getStringBuilder(int[] arr) {
int n = arr.length;
StringBuilder sb = new StringBuilder();
for (int i = 0; i < n; i++) {
sb.append(arr[i]);
if (i != n - 1) {
sb.append(" ");
}
}
return sb;
}
}