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

    '''
    希尔排序:
    将数组列在一个表中并对列分别进行插入排序,重复这过程,不过每次用更长的列来进行。
    最后整个列表就只有一列了。
    '''
    
    import time
    
    start1 = time.time()
    def shell_sort(alist):
    	n = len(alist)
    	# 初始步长
    	gap = n//2
    	while gap >0:
    		# 按步长进行插入排序
    		for i in range(gap,n):
    			j= i
    			# 插入步长
    			while j>=gap and alist[j-gap] > alist[j]:
    					alist[j-gap], alist[j] = alist[j], alist[j-gap]
    					j -= gap
    		# 得到新的步长
    		gap //= 2
    
    
    
    
    
    if __name__ == "__main__":
    
        alist = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
        shell_sort(alist)
        print(alist)
        end1 = time.time()
        print(end1-start1)
    

      



  • 相关阅读:
    JS笔记009
    JS笔记008
    JS笔记007
    JS笔记006
    JS笔记005
    JS笔记004
    JS笔记003
    JS笔记001
    CSS3笔记012
    expdp SYNONYM of publick and schema owner
  • 原文地址:https://www.cnblogs.com/think-and-do/p/7495453.html
Copyright © 2011-2022 走看看