一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - Python實現桶排序與快速排序算法結合應用示例

Python實現桶排序與快速排序算法結合應用示例

2020-12-19 00:59Alex Yu Python

這篇文章主要介紹了Python實現桶排序與快速排序算法結合應用,結合實例形式分析了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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 日韩资源 | 国产精品原创永久在线观看 | 娇小异类videos | 秋霞黄色 | 精品无码一区二区三区中文字幕 | 波多在线 | 亚洲精品第一国产综合 | ckinese中国男同gay男男 | 日韩去日本高清在线 | 欧洲vodafone精品性 | 丝瓜草莓香蕉绿巨人幸福宝 | 波多野结衣在线中文字幕 | 国产日产精品久久久久快鸭 | 9热在线精品视频观看 | 四虎国产精品免费久久麻豆 | rylskyart系列视频| 国产51社区精品视频资源 | 日本草草视频 | 亚洲人的天堂男人爽爽爽 | 国产自拍资源 | 国产精品一区二区三区免费 | 日韩精品中文字幕视频一区 | 91大神第九部红酒气质女 | 精品一区二区三区在线视频观看 | 91视频国产精品 | 九九热在线视频观看这里只有精品 | www91在线观看| 91四虎国自产在线播放线 | 四虎免费影院在线播放 | 亚洲视频免费 | 青草福利视频 | 精品乱lun小说 | 亚洲第一区欧美日韩精品 | 亚洲欧美日韩国产综合专区 | 天天做天天爱天天综合网 | 国产精品亚洲午夜不卡 | 天若有情1992国语版完整版 | 国产乱子伦一区二区三区 | 国产亚洲精品第一综合linode | 草女人逼 | 日本无遮挡亲吻膜下面免费 |