激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

腳本之家,腳本語(yǔ)言編程技術(shù)及教程分享平臺(tái)!
分類導(dǎo)航

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

服務(wù)器之家 - 腳本之家 - Python - Python實(shí)現(xiàn)桶排序與快速排序算法結(jié)合應(yīng)用示例

Python實(shí)現(xiàn)桶排序與快速排序算法結(jié)合應(yīng)用示例

2020-12-19 00:59Alex Yu Python

這篇文章主要介紹了Python實(shí)現(xiàn)桶排序與快速排序算法結(jié)合應(yīng)用,結(jié)合實(shí)例形式分析了Python快速排序及桶排序結(jié)合應(yīng)用的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下

本文實(shí)例講述了Python實(shí)現(xiàn)桶排序快速排序算法結(jié)合應(yīng)用的方法。分享給大家供大家參考,具體如下:

?
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]                      #將數(shù)組的第一個(gè)元素作為初始基準(zhǔn)位置
  p = i                        #同時(shí)記錄下該元素的位置
  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]進(jìn)行交換
  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 "---------------------------------------------------------------"

程序運(yùn)行結(jié)果:

Python實(shí)現(xiàn)桶排序與快速排序算法結(jié)合應(yīng)用示例

希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 美女久久久久久久久 | 一区二区视 | 欧美特级一级毛片 | 精品影视一区二区 | 高清国产福利 | 人人舔人人舔 | 欧美雌雄另类xxxxx | 男人的天堂视频网站 | 日本爽快片100色毛片视频 | 久久久久久久免费精品 | 中午字幕无线码一区2020 | 亚洲精品成人悠悠色影视 | 亚洲精品7777xxxx青睐 | 斗破苍穹在线观看免费完整观看 | 精品久久久久久久久久久下田 | arabxxxxvideos| 欧美在线成人影院 | 国产一国产一级毛片视频 | 91久久国产综合精品女同国语 | 日本在线不卡一区二区 | 日本成人在线免费 | 国产91精品亚洲精品日韩已满 | 国产精品色在线网站 | 亚洲成人自拍电影 | 天堂成人一区二区三区 | 免费a级毛片大学生免费观看 | 九九热在线视频观看这里只有精品 | 广西一级毛片 | 成人免费看毛片 | 欧美一级美国一级 | 中文字幕在线观看日韩 | 毛片免费大全短视频 | 国产亚洲综合一区二区 | 国产精品一区二区日韩 | 欧美成人一二三区 | 红桃一区 | 日韩在线观看电影 | 美女污污视频在线观看 | 国产日韩大片 | 西川av在线一区二区三区 | 一本色道精品久久一区二区三区 |