zoukankan      html  css  js  c++  java
  • python中归并排序

     1 # coding=UTF-8
     2 #!/usr/bin/python
     3 
     4 import sys
     5 
     6 def merge(nums, first, middle, last):
     7     "merge"
     8     #切片边界,左闭右开,从0开始
     9     lnums = nums[ first:middle+1 ]
    10     rnums = nums[ middle+1:last+1 ]
    11     lnums.append(sys.maxint)
    12     rnums.append(sys.maxint)
    13     l = 0
    14     r = 0
    15     for i in range( first, last+1 ):
    16         if lnums[l] < rnums[r]:
    17             nums[i] = lnums[l]
    18             l+=1
    19         else:
    20             nums[i] = rnums[r]
    21             r+=1
    22 
    23 def merge_sort(nums, first, last):
    24     """mergesort
    25         mergesort函数中传递的是下标,不是元素的个数
    26     """28     if first < last:
    29         middle = (first + last)/2
    30         #print "middle in loop", count, "is:", middle
    32         merge_sort(nums, first, middle)
    33         merge_sort(nums, middle+1, last)
    34         merge(nums,first, middle, last)
    35         #print "loops:",count,">>", nums
    36 
    37 
    38 
    39 if __name__ == '__main__':
    40     nums = [10, 8, 4, -1, 2, 6, 7, 3]
    41     print "nums is ", nums
    42     merge_sort(nums, 0, 7)
    43     print "merge_sort", nums

    /usr/bin/python2.7 /root/PycharmProjects/Sort/merge-sort.py
    nums is  [10, 8, 4, -1, 2, 6, 7, 3]
    merge_sort [-1, 2, 3, 4, 6, 7, 8, 10]

    Process finished with exit code 0

  • 相关阅读:
    js动画(三)
    js动画(二)
    css内容生成器
    css选择器基本属性
    css样式图片、渐变、相关小知识
    wed网页开发面试笔试必备小知识
    html5.边框属性相关知识点
    伪类选择符
    窗口尺寸小用法
    css3选择符使用个人理解。
  • 原文地址:https://www.cnblogs.com/noxy/p/6219216.html
Copyright © 2011-2022 走看看