最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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ù)組的第一個元素作為初始基準(zhǔn)位置
  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)文章

  • Python使用ChainMap實現(xiàn)組合數(shù)據(jù)魔法實例探究

    Python使用ChainMap實現(xiàn)組合數(shù)據(jù)魔法實例探究

    這篇文章主要為大家介紹了Python使用ChainMap實現(xiàn)組合數(shù)據(jù)魔法實例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2024-01-01
  • pycharm中安裝git遇到的問題及解決

    pycharm中安裝git遇到的問題及解決

    在PyCharm中安裝Git時遇到問題,按照視頻步驟操作后發(fā)現(xiàn)沒有g(shù)it選項,重新檢查設(shè)置,發(fā)現(xiàn)git目錄配置錯誤,重新選擇正確的目錄后,通過Test確認(rèn)無誤,在使用commit提交時遇到錯誤,按刷新按鈕即可解決
    2024-11-11
  • 基于wxpython開發(fā)的簡單gui計算器實例

    基于wxpython開發(fā)的簡單gui計算器實例

    這篇文章主要介紹了基于wxpython開發(fā)的簡單gui計算器,實例分析了基于wxpython實現(xiàn)簡單桌面應(yīng)用程序的相關(guān)技巧,需要的朋友可以參考下
    2015-05-05
  • python正則表達式re之compile函數(shù)解析

    python正則表達式re之compile函數(shù)解析

    這篇文章主要介紹了python正則表達式re之compile函數(shù)解析,介紹了其定義,匹配模式等相關(guān)內(nèi)容,具有一定參考價值,需要的朋友可以了解下。
    2017-10-10
  • 基于Python實現(xiàn)模擬三體運動的示例代碼

    基于Python實現(xiàn)模擬三體運動的示例代碼

    此前所做的一切三體和太陽系的動畫,都是基于牛頓力學(xué)的,而且直接對微分進行差分化,從而精度非常感人,用不了幾年就得撞一起去。所以本文來用Python重新模擬一下三體運動,感興趣的可以了解一下
    2023-03-03
  • Python借助with語句實現(xiàn)代碼段只執(zhí)行有限次

    Python借助with語句實現(xiàn)代碼段只執(zhí)行有限次

    這篇文章主要介紹了Python借助with語句實現(xiàn)代碼段只執(zhí)行有限次,首先要定義一個能夠在with語句中使用的類實現(xiàn)enter和exit,下文詳細(xì)介紹需要的小伙伴可以參考一下
    2022-03-03
  • Python json 模塊核心用法之字典 / 列表與 JSON 字符串互轉(zhuǎn)的操作

    Python json 模塊核心用法之字典 / 列表與 JSON&nb

    在Python開發(fā)中,我們經(jīng)常會遇到Python內(nèi)置數(shù)據(jù)類型(字典、列表)和JSON字符串的相互轉(zhuǎn)換需求,本文會通過實際代碼案例,詳細(xì)講解json模塊的兩個核心方法,感興趣的朋友跟隨小編一起看看吧
    2026-02-02
  • Python中切片賦值的高級技巧和避坑指南

    Python中切片賦值的高級技巧和避坑指南

    在 Python 的眾多特性中,列表List的切片賦值無疑是最具Python 風(fēng)格的操作之一,本文將深入剖析 Python 切片賦值的底層邏輯,揭示其背后的陷阱,并分享幾個能讓你的代碼更健壯、更高效的高級技巧,希望對大家有所幫助
    2026-02-02
  • django實現(xiàn)類似觸發(fā)器的功能

    django實現(xiàn)類似觸發(fā)器的功能

    今天小編就為大家分享一篇django實現(xiàn)類似觸發(fā)器的功能,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • flask框架藍圖和子域名配置詳解

    flask框架藍圖和子域名配置詳解

    這篇文章主要介紹了flask框架藍圖和子域名配置,結(jié)合實例形式詳細(xì)分析了flask框架藍圖和子域名配置相關(guān)原理、操作技巧與注意事項,需要的朋友可以參考下
    2020-01-01

最新評論

武陟县| 卢龙县| 习水县| 全椒县| 北海市| 华坪县| 湘潭市| 双流县| 那曲县| 繁昌县| 余干县| 五常市| 寻甸| 临泽县| 凤翔县| 苗栗市| 凤阳县| 嘉兴市| 阿勒泰市| 东阳市| 关岭| 兴国县| 漠河县| 浦县| 宁武县| 嵩明县| 双城市| 巴中市| 蚌埠市| 崇阳县| 雷山县| 九江市| 获嘉县| 永川市| 西藏| 永清县| 福建省| 贵州省| 石首市| 孟州市| 额尔古纳市|