lotus

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

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  1846 随笔 :: 0 文章 :: 109 评论 :: 288万 阅读

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

它的思想是

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

它的时间复杂度是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   白露~  阅读(51)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
历史上的今天:
2018-07-03 java System.arrayCopy使用说明
2018-07-03 list.remove的使用分析
点击右上角即可分享
微信分享提示