开发者社区> 问答> 正文

Python 希尔排序

Python 希尔排序

展开
收起
游客ejnn55cgkof5g 2020-02-14 19:40:14 4716 0
1 条回答
写回答
取消 提交回答
  •  
    def shellSort(arr): 
      
        n = len(arr)
        gap = int(n/2)
      
        while gap > 0: 
      
            for i in range(gap,n): 
      
                temp = arr[i] 
                j = i 
                while  j >= gap and arr[j-gap] >temp: 
                    arr[j] = arr[j-gap] 
                    j -= gap 
                arr[j] = temp 
            gap = int(gap/2)
      
    arr = [ 12, 34, 54, 2, 3] 
      
    n = len(arr) 
    print ("排序前:") 
    for i in range(n): 
        print(arr[i]), 
      
    shellSort(arr) 
      
    print ("\n排序后:") 
    for i in range(n): 
        print(arr[i]),
    执行以上代码输出结果为:
    
    排序前:
    12
    34
    54
    2
    3
    
    排序后:
    2
    3
    12
    34
    54
    2020-02-14 19:41:37
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
From Python Scikit-Learn to Sc 立即下载
Data Pre-Processing in Python: 立即下载
双剑合璧-Python和大数据计算平台的结合 立即下载