• 11-插入排序


    # 插入排序时间复杂度仍然是O(n**2),但算法思路与冒泡排序、选择排序不同
    # 插入排序维持一个已排好序的子列表,其位置始终在列表的前部,然后逐步扩大这个子列表直到全表
    # 插入排序的比对主要用来寻找新项的插入位置
    
    
    def insertionSort(alist):
        for index in range(1, len(alist)):  # 从1开始,因为与前面的项比较
            # 抽出当前数据,寻找插入位置
            currentvalue = alist[index]  # 记录值
            position = index  # 记录索引
            while position > 0 and alist[position-1] > currentvalue:  # 判断前一项是不比当前项大
                alist[position] = alist[position-1]
                position = position - 1
            alist[position] = currentvalue  # 找到插入位置,插入该项
    
    
    testlist = [2, 3, 3, 243, 24, 24455, 23]
    insertionSort(testlist)
    print(testlist)
    
  • 相关阅读:
    Kakuro Extension HDU
    CodeForces
    HDU
    2019牛客暑期多校训练营(第二场)F.Partition problem
    UVA
    团队冲刺6
    团队冲刺4
    团队冲刺3
    团队冲刺2
    团队冲刺1
  • 原文地址:https://www.cnblogs.com/lotuslaw/p/13968813.html
Copyright © 2020-2023  润新知