令狐葱

大漠孤烟直,长河落日圆。

博客园 首页 订阅 管理
 1 #!/usr/bin/env python2
 2 # -*- coding: utf-8 -*-
 3 """
 4 Created on Tue Nov 21 22:28:09 2017
 5 
 6 @author: livermorium116
 7 """
 8 
 9 
10 
11 
12 import random
13 
14 class MergeSortedByCur():
15     def __init__(self, data):
16         self.data = data
17         #print("ORIGIN DATA:",  self.data)
18         self.CountCur=0
19         self.Results=self.MergeSort(self.data)
20     def MergeSort(self,data):
21 
22         if len(data) <= 1:
23                 return data
24         num = int(len(data)/2)
25         Left = self.MergeSort(data[:num])
26         Right = self.MergeSort(data[num:])
27         #print("LEFT:",Left,"RIGHT:",Right)
28         self.CountCur += 1
29         #print ("%d Cursions:"%(self.CountCur))
30         return self.Merge(Left, Right)
31 
32 
33     def Merge(self,left, right):
34         R, L = 0, 0
35         result = []
36         while L < len(left ) and R < len(right ):
37             if left[L] < right[R]:
38                 result.append(left[L])
39                 L += 1
40             else:
41                 result.append(right[R])
42                 R += 1
43         result.extend(left[L:])
44         result.extend(right[R:])
45         #print("MergeSorted DATA:",result)
46         return result
47  
48 
49 
50         
51 
52  
53 
54 
55 if __name__ == "__main__":
56     data = [random.randint(1,100) for i in range(13)]
57     print(data)
58     print MergeSortedByCur(data).Results
59      

 

posted on 2017-11-21 23:19  livermorium116  阅读(878)  评论(0编辑  收藏  举报