国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

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

2020-02-16 10:49:09
字體:
來源:轉載
供稿:網友

本文實例講述了Python實現桶排序與快速排序算法結合應用的方法。分享給大家供大家參考,具體如下:

#-*- coding: UTF-8 -*-import numpy as npfrom QuickSort import QuickSortdef 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 += 1if __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:

#-*- coding: UTF-8 -*-import numpy as npdef 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 pdef 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數據結構與算法教程》、《Python加密解密算法與技巧總結》、《Python編碼操作技巧總結》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》及《Python入門與進階經典教程》

希望本文所述對大家Python程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 永平县| 会理县| 青冈县| 陕西省| 苏州市| 高安市| 三门县| 台江县| 济源市| 嫩江县| 白银市| 乐陵市| 和田市| 彰武县| 青州市| 万载县| 上杭县| 连城县| 锡林浩特市| 乐平市| 赣州市| 清新县| 牡丹江市| 辉县市| 和林格尔县| 南康市| 邛崃市| 漳州市| 蕉岭县| 平山县| 浑源县| 靖安县| 尤溪县| 新余市| 宁城县| 深泽县| 南江县| 法库县| 文山县| 天峻县| 金溪县|