zoukankan      html  css  js  c++  java
  • 希尔排序

    '''
    将数组列在一个表中,分别进行插入排序。先以步长为一半,列表。然后对每一列进行排序。
    然后将排好序的,再按照步长为一半,列表进行排序。
    最后进行插入排序
    '''
    def shell_sort(lst):
        n = len(lst)
    
        gap = n//2 #按照总长度的一半进行分列,然后进行 行排序
        while gap > 0:
            for i in range(gap,n):
                j = i
                #按照步长进行排序
                while j>= gap and lst[j-gap] > lst[j]:#对索引位置进行有规律的使用
                    # j-gap表示每一列上的元素,j发生变化,列发生变化
                    lst[j-gap],lst[j] = lst[j],lst[j-gap]
                    j -= gap#向上一行
            gap = gap//2#缩小比较的列的个数
    
    lst = [54,26,93,17,77,31,44,55,20]
    shell_sort(lst)
    print(lst)

    2020-05-07

  • 相关阅读:
    Linux文件及目录查找
    英语单词independent
    英语单词omitting
    英语单词deploy
    英语单词debug
    线程
    进程
    操作系统历史
    分布式爬虫
    爬虫基础
  • 原文地址:https://www.cnblogs.com/hany-postq473111315/p/12845247.html
Copyright © 2011-2022 走看看