亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

 更新時(shí)間:2017年11月22日 08:59:39   作者:Alex Yu  
這篇文章主要介紹了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)用的方法。分享給大家供大家參考,具體如下:

#-*- 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ù)組的第一個(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é)果:

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

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

相關(guān)文章

  • Pandas中shift庫(kù)的具體使用

    Pandas中shift庫(kù)的具體使用

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

    講解Python的Scrapy爬蟲(chóng)框架使用代理進(jìn)行采集的方法

    這篇文章主要介紹了講解Python的Scrapy爬蟲(chóng)框架使用代理進(jìn)行采集的方法,并介紹了隨機(jī)使用預(yù)先設(shè)好的user-agent來(lái)進(jìn)行爬取的用法,需要的朋友可以參考下
    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ò)示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-11-11
  • pow在python中的含義及用法

    pow在python中的含義及用法

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

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

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

    Scrapy 配置動(dòng)態(tài)代理IP的實(shí)現(xiàn)

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

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

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

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

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

    python學(xué)習(xí)筆記之調(diào)用eval函數(shù)出現(xiàn)invalid syntax錯(cuò)誤問(wèn)題

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

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

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

最新評(píng)論