插入排序
Description
实现插入排序。
Input
输入第一行为用例个数, 每个测试用例输入的每一行代表一个数组,其中的值用空格隔开,第一个值表示数组的长度。
Output
输出排序的数组,用空格隔开,末尾不要空格。
Sample Input 1
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 InsertSort {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
while (scan.hasNext()) {
int m = scan.nextInt();
for (int count = 0; count < m; count++) {
int n = scan.nextInt();
int[] nums = new int[n];
for (int i = 0; i < n; i++) {
int num = scan.nextInt();
nums[i] = num;
}
for (int i = 0; i < n; i++) {
int index = i;
for (int j = i + 1; j < n; j++) {
if (nums[j] < nums[index]) {
index = j;
}
}
swap(nums, index, i);
}
println(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;
}
}