package cn.com;
/**
* @author ty 插入排序:外层循环从数组1位置到length位置。内层循环,每个数和前面的数比较,如果比前面的数小则换位置
*/
public class InsertSort {
public static void main(String[] args) {
int[] a = new int[] { 1, 5, 33, 53, 2, 32, 12 };
print(a);
sort(a);
print(a);
}
private static void sort(int[] a) {
for (int i = 1; i < a.length; i++) {
int k = i;
while (k >= 1) {
if (a[k] < a[k - 1]) {
exchange(a, k, k-1);
}
k--;
}
}
}
// 交换两个数在数组中的位置
public static void exchange(int[] a, int start, int old) {
int num = a[start];
a[start] = a[old];
a[old] = num;
}// angelStyle
// 打印
public static void print(int a[]) {
StringBuffer stringBuffer = new StringBuffer();
for (int k : a) {
stringBuffer.append(k + ",");
}
System.out.println(stringBuffer.substring(0, stringBuffer.length() - 1));
}
}