简单插入排序

发布时间 2023-07-03 21:31:11作者: 白露~

简单插入排序是一种基本的排序算法,它的思想是将待排序的元素逐个插入到已经有序的数组中,从而得到一个新的有序数组。它的时间复杂度是O(n^2),空间复杂度是O(1),是一种稳定的排序算法。

简单插入排序的过程如下:

  1. 从第二个元素开始,依次取出每个元素,与前面已经有序的元素进行比较。
  2. 如果当前元素小于前面的某个元素,就将当前元素插入到该元素之前,同时将该元素及其后面的所有元素后移一位。
  3. 如果当前元素大于或等于前面所有的元素,就不需要移动,继续取出下一个元素。
  4. 重复上述步骤,直到所有的元素都被插入到正确的位置。

简单插入排序的JAVA实现如下:

public class InsertionSort {
    public static void sort(int[] arr) {
        //从第二个元素开始
        for (int i = 1; i < arr.length; i++) {
            //取出当前元素
            int temp = arr[i];
            //记录要插入的位置
            int j = i;
            //与前面已经有序的元素进行比较
            while (j > 0 && temp < arr[j - 1]) {
                //如果当前元素小于前面的某个元素,就将该元素后移一位
                arr[j] = arr[j - 1];
                //更新要插入的位置
                j--;
            }
            //将当前元素插入到正确的位置
            arr[j] = temp;
        }
    }
}