• 数据结构与算法:直接插入排序(原理讲解+python实现)


    直接插入排序

    直接插入排序(Direct Insertion Sort) 是常见流行的排序算法之一。在大部分元素已经排好序的序列数组中,插入排序的优势得以体现。

    排序原理

    实际上是将要排序的数字列表分为有序表和无序表。有序表的数字都是有序的,而且规模逐个变大,从一个数字到列表长度的数字数目;无序表就是列表除去有序表剩下的数字,每次取第一个数字去与有序表中的数字做比较,并插入到有序表中正确的位置,无序表的规模逐个变小,最终全部取出,得到一个完整的有序表。

    细节实现

    Python实现

     1 def dInsertionSort(arr, n):  # 传入要排序数字列表和列表长度
     2     for i in range(1, n):  # 将列表第1个元素作为有序表、第2到第n-1个元素作为无序表
     3         if arr[i] < arr[i-1]:   # 如果无序表中第一个元素比有序表中最大元素要小 则需要插入到有序表中
     4             tmp = arr[i]
     5             j = i-1
     6             while (j >= 0 and arr[j] > tmp):
     7                 arr[j+1] = arr[j]
     8                 j -= 1
     9             # 当无序表中第一个元素比完有序表中所有元素都没有比它还小的(j<0)
    10             # 或者它大于有序表中某个位置的数字,则将其放在当前位置的+1位置
    11             arr[j+1] = tmp
    12 
    13 if __name__ == '__main__':
    14     arr = [20, 30, 10, 60, 50, 40]
    15     n = len(arr)
    16     dInsertionSort(arr, n)
    17     print(arr)
  • 相关阅读:
    c#redis使用
    不安全的HTTP方法(渗透实验)
    arguments.callee弃用与webuploader
    多线程系列1:经典卖票
    终于确定了系统lsass.exe占用cpu的根本原因了,速度来看一看!![转载]
    edit响应键盘的“咚咚”声音去掉
    delphi资源文件制作及使用详解
    MySQL server has gone away错误的解决办法
    MySQL server has gone away的解决方法
    MySQL
  • 原文地址:https://www.cnblogs.com/confessionlouis/p/14259152.html
Copyright © 2020-2023  润新知