lotus

贵有恒何必三更眠五更起 最无益只怕一日曝十日寒

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

简单插入排序是一种基本的排序算法,

它的思想是

  • 将待排序的元素逐个插入到已经有序的数组中,从而得到一个新的有序数组。

它的时间复杂度是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;
        }
    }
}
posted on 2023-07-03 21:23  白露~  阅读(56)  评论(0)    收藏  举报