java-插入排序
方便自己回忆的记录总结~
时间复杂度:O(n2)
不断和前面位置对比交换,选择合适插入的位置,进行排序。
代码
/**
* 插入排序
*/
public class InsertionSort {
//1 2 3 4 5
public static void insertionSort(int[] arr) {
for (int i = 1; i < arr.length; i++) {
for (int j = i; j > 0; j--) {
if (arr[j] > arr[j - 1]) {
swap(arr, j, j - 1);
} else {
break;
}
}
}
}
public static void swap(int[] arr, int a, int b) {
int temp = arr[a];
arr[a] = arr[b];
arr[b] = temp;
}
public static void main(String[] args) {
//模拟数据
int[] array = {52, 63, 14, 59, 68, 35, 8, 67, 45, 99};
System.out.println("原数组:");
for (int i : array) {
System.out.print(i + " ");
}
System.out.println();
insertionSort(array);
System.out.println("排序后:");
for (int i : array) {
System.out.print(i + " ");
}
}
}