美文网首页
手把手教媳妇-复习下插入排序算法

手把手教媳妇-复习下插入排序算法

作者: 牛空空 | 来源:发表于2020-07-07 12:27 被阅读0次

思路:插入排序思路是将一个无序表分为有序和无序两部分,依次将无序表中的元素放入有序表中正确的位置,从而无序部分变长,有序部分变短,直至全部有序

//插入排序法 默认第一个元素array[0]为有序部分,后面的是无序部分
func InsertSort(array []int) {

     //i 循环遍历无序部分中的元素
    for i := 1; i < len(array); i++ {

        //tmp 标识无序部分的第一个元素
        tmp := array[i]
        //j 标识有序部分的最后一个位置
        j := i - 1

        //从后向前遍历有序部分,依次与tmp比较,
        //比tmp大的则向后依次移动,直到满足 array[j]比tmp小,则退出循环
        for j >= 0 && array[j] > tmp {

            array[j+1] = array[j]
            j--
        }
        // (由小到大排列)此时j位置的元素比 tmp 小,tmp应该处于j+1的位置
        array[j+1] = tmp

    }

}

测试

// 插入排序法
func TestInsertSort(t *testing.T)  {

    la := []int{72, 6, 57, 88, 60, 42, 83, 73, 48, 85}
    InsertSort(la)
}

结果


1.png

ps:插入排序的思路中可以分析,一个无序列表的的有序化元素越多,效率越高

相关文章

  • 手把手教媳妇-复习下插入排序算法

    思路:插入排序思路是将一个无序表分为有序和无序两部分,依次将无序表中的元素放入有序表中正确的位置,从而无序部分变长...

  • 手把手教媳妇-复习快速排序算法

    快速排序算法的思路分两部分:1:在一个线性表中,找到一个基准数据用tmp表示,然后将比tmp大的数据全部放在它的右...

  • 算法-插入排序

    算 法:插入排序算法时间复杂度: 插入排序算法描述 插入排序伪代码 插入排序实现 插入排序算法概述 插入排...

  • 算法复习之——插入排序

    原理 1.定义一个指针,将指针指向某个元素(一般指向第二个),然后把以这个元素为基准,将整个数组分成两个部分,左侧...

  • python 冒泡排序和选择排序算法

    插入排序算法 冒泡排序算法

  • c算法O(n)^2(一)

    选择排序 插入排序 优化插入排序算法

  • Chapter 2 Foundation of Algorith

    Chapter 2 插入排序 线性查找 选择算法 归并排序算法 二分查找算法 冒泡排序 插入排序 循环不...

  • 基本排序算法 - 插入排序

    排序算法相关理论网上资料已经很多了,这里记录一下代码方便复习。 插入排序核心思想:把数组分为有序表和无序表,从后面...

  • 数据结构与算法(七),排序

    这节总结一下常见的排序算法。 目录: 1、插入排序 1.1、直接插入排序 1.2、二分插入排序 2、选择排序 3、...

  • 插入排序:思路与实现

    插入排序的思想 插入排序算法是一个比较简单好理解的算法。直接的例子就是玩扑克的时候,想象一下,分牌的时候,大家轮流...

网友评论

      本文标题:手把手教媳妇-复习下插入排序算法

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