美文网首页
基础算法——直接插入排序

基础算法——直接插入排序

作者: 黑白咖 | 来源:发表于2017-03-13 06:54 被阅读9次

过去读书的时候因为脑子不好使,很多概念,公式,算法都记不住,等长大了,营养赶上来了,才学习的时候就会觉得更加的深刻。就像平常我们打扑克牌一样,我们总是在别人发牌的时候,拿到一张牌就把它插到合适的位置上,这个过程中我们的肉眼和大脑做了3件事
1、拿到新的牌,检查这张牌的数值是多少(从数组里面获取新的元素)
2、从手上的牌里面检索新加入的牌应该插入的位置(检索当前元素插入的位置)
3、手指张开一点,对手上的牌进行扩容(对已排序数组进行扩容,扩容期间需要对元素进行移位)
有了这些战略上的指导,我们就可以进行代码实现了:

    public  int[] InsertSort(int[] array){
                //第一个元素作为哨兵
               int key = array[0];
        for(int i=1;i<array.length;i++){
            for (int j = 0; j <= i; j++) {
                if (array[j] > array[i]){
                    int temp = array[i];
                    array[i] = array[j];
                    array[j] = temp;
                }
            }
        }
        return array;
    }
直接排序

算法特点
时间复杂度为O(n^2),空间复杂度为O(1),比较适用于数据集合基本有序的情况,这样子时间复杂度约为O(n),否则,当n越大,时间复杂度就越高,效率低。

相关文章

  • 插入排序算法实现

    排序算法是最常见,最基础的算法,作者文集中记录了两种排序算法(插入排序,归并排序) 插入排序算法实现很简单直接,附...

  • 排序

    本文记录几个基础的排序算法。排序算法分为插入排序、交换排序、选择排序等几大类。 插入排序 1. 直接插入排序 O(...

  • 二分插入排序

    1.算法思想 二分插入排序也是插入排序算法的一种,其基本思想是:引入二分查找的思想,在直接插入排序的基础上减少比较...

  • 排序算法(一)直接插入排序算法

    排序算法(一)直接插入排序算法 1.基本概念  直接插入排序(Straight-Insertion-Sort)是一...

  • 算法(一)之排序算法(四)——希尔排序(ShellSort)

    希尔排序也是八大排序算法之一,它是在插入排序的基础上演变而来的,也称缩小增量排序,是直接插入排序算法的一种更高效的...

  • 常用的排序算法

    本文主要对一些基础排序算法进行温故。子曰:“温故而知新,可以为师矣。” 插入排序---直接插入排序 基本思想:将一...

  • 【数据结构】【C#】013-插入类排序:🥇直接插入排序(稳定)

    插入排序:直接插入排序(稳定) 【 算法思想 】 直接插入排序是一种最基本的插入排序方法,其基本操作是将第 i 个...

  • 排序——插入排序

    业精于勤荒于嬉 插入排序包括:直接插入排序、折半插入排序、希尔排序(缩小增量排序) 一、直接插入排序 1. 算法思...

  • 2.1-插入排序-直接插入

    参考链接 插入排序:直接插入排序(Straight Insertion Sort) 白话经典算法系列之二 直接插入...

  • 基础算法——直接插入排序

    过去读书的时候因为脑子不好使,很多概念,公式,算法都记不住,等长大了,营养赶上来了,才学习的时候就会觉得更加的深刻...

网友评论

      本文标题:基础算法——直接插入排序

      本文链接:https://www.haomeiwen.com/subject/djffnttx.html