gpt4 book ai didi

Python实现桶排序与快速排序算法结合应用示例

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 26 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Python实现桶排序与快速排序算法结合应用示例由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

本文实例讲述了Python实现桶排序与快速排序算法结合应用的方法。分享给大家供大家参考,具体如下:

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

快速排序QuickSort:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#-*- coding: UTF-8 -*-
import numpy as np
def Partition(a, i, j):
   x = a[i]                      #将数组的第一个元素作为初始基准位置
   p = i                        #同时记录下该元素的位置
   while i < j:
     while i < j and a[j] > = x:
       j - = 1
     while i < j and a[i] < = x:
       i + = 1
     if i ! = j:
       a[i], a[j] = a[j], a[i]         #交换a[i]与a[j]
   a[p], a[i] = a[i], a[p]           #将a[p]与a[i]进行交换
   p = i                       #得到分隔位置
   return p
def QuickSort(a, i, j):
   if i < j:
     p = Partition(a, i, j)
     QuickSort(a, i, p - 1 )
     QuickSort (a, p + 1 , j)
if __name__ = = '__main__' :
   a = np.random.randint( 0 , 100 , size = 100 )
   print "Before sorting..."
   print "---------------------------------------------------------------"
   print a
   print "---------------------------------------------------------------"
   QuickSort(a, 0 , a.size - 1 )
   print "After sorting..."
   print "---------------------------------------------------------------"
   print a
   print "---------------------------------------------------------------"

程序运行结果:

Python实现桶排序与快速排序算法结合应用示例

希望本文所述对大家Python程序设计有所帮助.

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

最后此篇关于Python实现桶排序与快速排序算法结合应用示例的文章就讲到这里了,如果你想了解更多关于Python实现桶排序与快速排序算法结合应用示例的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com