首页 > 编程语言 > 详细

桶排序与快速排序算法结合-python实现

时间:2015-09-25 13:11:54      阅读:353      评论:0      收藏:0      [点我收藏+]
 1 #-*- coding: UTF-8 -*-
 2 import numpy as np
 3 from QuickSort import QuickSort
 4 
 5 def BucketSort(a, n):
 6     barrel = {}
 7     for i in xrange(0,n):
 8         barrel.setdefault(i, [])
 9     min = np.min(a)
10     max = np.max(a)
11     for x in a:
12         for i in xrange(0,n-1):
13             if x >= min +i* (max - min)/n and x < min +(i +1) * (max - min)/n:
14                 barrel[i].append(x)
15             elif i == n-2 and x >=  min +(i +1) * (max - min)/n:
16                 barrel[i+1].append(x)
17     k = 0
18     for i in xrange(0,n):
19         if len(barrel[i]) != 0:
20             arr = np.array(barrel[i])
21             QuickSort(arr, 0, len(barrel[i]) -1)
22             for x in arr:
23                 a[k] = x
24                 k += 1
25 
26 
27 
28 if __name__ == __main__:
29     a = np.random.randint(0, 100, size = 10)
30     print "Before sorting..."
31     print "---------------------------------------------------------------"
32     print a
33     print "---------------------------------------------------------------"
34     BucketSort(a, 10)
35     print "After sorting..."
36     print "---------------------------------------------------------------"
37     print a
38     print "---------------------------------------------------------------"

 

桶排序与快速排序算法结合-python实现

原文:http://www.cnblogs.com/biaoyu/p/4837823.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!