zoukankan      html  css  js  c++  java
  • 桶排序与快速排序算法结合-python实现

     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 "---------------------------------------------------------------"
  • 相关阅读:
    bzoj4571: [Scoi2016]美味
    hdu2929 Bigger Is Better
    将博客搬家到博客园了
    BZOJ4567[Scoi2016]背单词
    BZOJ 4568 幸运数字
    BZOJ 4569 萌萌哒
    BZOJ4570: [Scoi2016]妖怪
    poj3468 A Simple Problem with Integers(zkw区间修改模板)
    spoj 8222
    hdu 4918
  • 原文地址:https://www.cnblogs.com/biaoyu/p/4837823.html
Copyright © 2011-2022 走看看