插入排序

Posted ff-gaofeng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了插入排序相关的知识,希望对你有一定的参考价值。


关于插入排序,其算法的核心思想是:将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数。即:序列的第一个元素,肯定是有序的,把第二个元素和第一个元素相比,插入到合适的位置,这样前两个元素就有序了,接着,把第三个元素插入到前面包含两个元素的有序列表中,以此类推,直至插完第n个数据。

细节说明:
将多个数字进行升序排序时,每次基于有序的列表进行插入,方法类似冒泡排序。
步骤1:非排序的一个元素s和排好序的多个数字从大到小的顺序依次进行比对,如果s比排好序的数字大,则结束比较大小的循环,意味着s作为目前最大的排好序的数字,如过小s就和比较的数字交换位置,继续进行比较。
将列表的所有的元素都按照步骤1的逻辑完成在有序列表的插入动作,那么所有数字就成为有序列表了。

def insertSort(nums):
    for i in range(1,len(nums)):
        j = i-1
        while j >= 0:
            if nums[j]>nums[j+1]:
                nums[j],nums[j+1] = nums[j+1],nums[j]
                j -= 1
            else:
                break
    return nums

if __name__==__main__:
    print(insertSort([88,33,55,11,99,37,20]))

以上是关于插入排序的主要内容,如果未能解决你的问题,请参考以下文章

KDoc:插入代码片段

代码片段使用复杂的 JavaScript 在 UIWebView 中插入 HTML?

将代码片段插入数据库并在 textarea 中以相同方式显示

关于在各浏览器中插入音频文件的html代码片段

初识Spring源码 -- doResolveDependency | findAutowireCandidates | @Order@Priority调用排序 | @Autowired注入(代码片段

初识Spring源码 -- doResolveDependency | findAutowireCandidates | @Order@Priority调用排序 | @Autowired注入(代码片段