欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2017年11月22日 08:59:39   作者:Alex Yu  
這篇文章主要介紹了Python實現(xiàn)桶排序與快速排序算法結(jié)合應(yīng)用,結(jié)合實例形式分析了Python快速排序及桶排序結(jié)合應(yīng)用的相關(guān)實現(xiàn)技巧,需要的朋友可以參考下

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

#-*- 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:

#-*- coding: UTF-8 -*-
import numpy as np
def Partition(a, i, j):
  x = a[i]                      #將數(shù)組的第一個元素作為初始基準位置
  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 "---------------------------------------------------------------"

程序運行結(jié)果:

更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python加密解密算法與技巧總結(jié)》、《Python編碼操作技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門與進階經(jīng)典教程

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

相關(guān)文章

  • Pandas中shift庫的具體使用

    Pandas中shift庫的具體使用

    shift函數(shù)是Pandas庫中用于數(shù)據(jù)位移的函數(shù),常用于時間序列數(shù)據(jù)的處理,本文主要介紹了Pandas中shift庫的具體使用,具有一定的參考價值,感興趣的可以了解一下
    2024-06-06
  • 講解Python的Scrapy爬蟲框架使用代理進行采集的方法

    講解Python的Scrapy爬蟲框架使用代理進行采集的方法

    這篇文章主要介紹了講解Python的Scrapy爬蟲框架使用代理進行采集的方法,并介紹了隨機使用預(yù)先設(shè)好的user-agent來進行爬取的用法,需要的朋友可以參考下
    2016-02-02
  • Python調(diào)用graphviz繪制結(jié)構(gòu)化圖形網(wǎng)絡(luò)示例

    Python調(diào)用graphviz繪制結(jié)構(gòu)化圖形網(wǎng)絡(luò)示例

    今天小編就為大家分享一篇Python調(diào)用graphviz繪制結(jié)構(gòu)化圖形網(wǎng)絡(luò)示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • pow在python中的含義及用法

    pow在python中的含義及用法

    在本篇文章里小編給各位分享了關(guān)于pow在python中是什么意思的相關(guān)知識點內(nèi)容,有需要的朋友們參考學習下。
    2019-07-07
  • pytorch?tensor內(nèi)所有元素相乘實例

    pytorch?tensor內(nèi)所有元素相乘實例

    這篇文章主要介紹了pytorch?tensor內(nèi)所有元素相乘實例,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • Scrapy 配置動態(tài)代理IP的實現(xiàn)

    Scrapy 配置動態(tài)代理IP的實現(xiàn)

    這篇文章主要介紹了Scrapy 配置動態(tài)代理IP的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-09-09
  • python學生信息管理系統(tǒng)(初級版)

    python學生信息管理系統(tǒng)(初級版)

    這篇文章主要為大家詳細介紹了python學生信息管理系統(tǒng)的初級版本代碼,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-10-10
  • python面向?qū)ο缶幊淘O(shè)計原則之單一職責原則詳解

    python面向?qū)ο缶幊淘O(shè)計原則之單一職責原則詳解

    這篇文章主要為大家詳細介紹了python面向?qū)ο缶幊淘O(shè)計原則之單一職責原則,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • python學習筆記之調(diào)用eval函數(shù)出現(xiàn)invalid syntax錯誤問題

    python學習筆記之調(diào)用eval函數(shù)出現(xiàn)invalid syntax錯誤問題

    python是一門多種用途的編程語言,時常扮演腳本語言的角色。一般來說,python可以定義為面向?qū)ο蟮哪_本語言,這個定義把面向?qū)ο蟮闹С趾兔嫦蚰_本語言的角色融合在一起。很多時候,人們常常喜歡用“腳本”和不是語言來描述python的代碼文件。
    2015-10-10
  • Python函數(shù)命名空間和作用域(Local與Global)

    Python函數(shù)命名空間和作用域(Local與Global)

    這篇文章主要介紹了Python函數(shù)命名空間和作用域分別介紹Local與Global模式,內(nèi)容詳細,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-03-03

最新評論