前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >插入排序

插入排序

作者头像
Li_XiaoJin
发布2022-06-10 21:50:34
2050
发布2022-06-10 21:50:34
举报
文章被收录于专栏:Lixj's BlogLixj's Blog

插入排序

插入排序的思路:

  1. 从第一个元素开始,该元素可以认为已经被排序;
  2. 取出下一个元素,在前面已排序的元素序列中,从后向前扫描;
  3. 如果该元素(已排序)大于新元素,将该元素移到下一位置;
  4. 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置;
  5. 将新元素插入到该位置后;
  6. 重复步骤2~5。

https://lixj.fun/upload/2021/07/%E6%8F%92%E5%85%A5%E6%8E%92%E5%BA%8F-ccfb2330d0bf4e04afd9e840b4e99bbc.gif

平均时间复杂度:O(n?)

空间复杂度:O(1)

算法稳定性:稳定

代码语言:javascript
复制


public class InsertSort3 {
    public static void insertSort(int[] arr) {
        for (int i = 1; i < arr.length; i++) {
            int temp = arr[i];
            int j = i;
            while (j > 0 && arr[j-1] > temp) {
                arr[j] = arr[j-1];
                j--;
            }
            if (i != j) {
                arr[j] = temp;
            }
        }

    }


    public static void main(String[] args) {
        int a[] = new int[]{32, 43, 23, 13, 5};
        insertSort(a);
        for (int i=0; i<a.length; i++) {
            System.out.print(a[i] + ",");
        }
    }
}

Copyright: 采用 知识共享署名4.0 国际许可协议进行许可 Links: https://lixj.fun/archives/插入排序

本文参与?腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-08-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com