public class InsertionSort {
public static void insertionSort(int[] arr) {
for (int i = 1; i < arr.length; i++) {
int key = arr[i];
int j = i - 1;
// 将arr[i]插入到arr[0...i-1]中已排序的序列中
while (j >= 0 && arr[j] > key) {
arr[j + 1] = arr[j]; // 记录后移
j = j - 1;
}
arr[j + 1] = key; // 插入到正确位置
}
}
public static void main(String[] args) {
int[] arr = {12, 11, 13, 5, 6};
insertionSort(arr);
System.out.println("Sorted array: ");
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
}
}
这段代码展示了插入排序算法的一个简单实现。插入排序的基本思想是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。在`main`方法中,我们定义了一个整数数组`arr`,并调用`insertionSort`方法进行排序,最后打印排序后的数组。