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

python遞歸實(shí)現(xiàn)快速排序

 更新時(shí)間:2018年08月18日 10:06:10   作者:data_heng  
這篇文章主要為大家詳細(xì)介紹了python遞歸實(shí)現(xiàn)快速排序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

快速排序(QuickSort)是對冒泡排序的一種改進(jìn):

基本思想:

通過一趟排序?qū)⒁判虻臄?shù)據(jù)分割成獨(dú)立的兩部分,其中一部分的所有數(shù)據(jù)都比另外一部分的所有數(shù)據(jù)都要小,然后再按此方法對這兩部分?jǐn)?shù)據(jù)分別進(jìn)行快速排序,整個(gè)排序

過程可以遞歸進(jìn)行,以此達(dá)到整個(gè)數(shù)據(jù)變成有序序列。

一趟快速排序的算法是:

1)設(shè)置兩個(gè)變量i、j,排序開始的時(shí)候:i=0,j=N-1;

2)以第一個(gè)數(shù)組元素作為關(guān)鍵數(shù)據(jù),賦值給key,即key=A[0];

3)從j開始向前搜索,即由后開始向前搜索(j--),找到第一個(gè)小于key的值A(chǔ)[j],將A[j]和A[i]互換;

4)從i開始向后搜索,即由前開始向后搜索(i++),找到第一個(gè)大于key的A[i],將A[i]和A[j]互換;

5)重復(fù)第3、4步,直到i=j; (3,4步中,沒找到符合條件的值,即3中A[j]不小于key,4中A[i]不大于key的時(shí)候改變j、i的值,使得j=j-1,i=i+1,直至找到為止。找到符合條件的值,

進(jìn)行交換的時(shí)候i, j指針位置不變。另外,i==j這一過程一定正好是i+或j-完成的時(shí)候,此時(shí)令循環(huán)結(jié)束)。

利用python實(shí)現(xiàn)的快速排序代碼quick_sort.py如下:

def sub_sort(array,low,high):
  pivotkey=array[low]
  while low<high :
    while low<high and array[high]>=pivotkey:
      high -= 1
    array[low]=array[high]
    while low<high and array[low]<=pivotkey:
      low += 1
    array[high]=array[low]
  array[low]=pivotkey
  return low
 
def quick_sort(array,low,high):
  if low < high :
    pivoloc=sub_sort(array,low,high)
    quick_sort(array,low,pivoloc-1)
    quick_sort(array,pivoloc+1,high)
 
if __name__=="__main__": 
  array=[49,38,65,97,76,13,27]
  print array
  quick_sort(array,0,len(array)-1)
  print array

對一個(gè)數(shù)組array=[49, 38, 65, 97, 76, 13, 27]進(jìn)行快速排序,得到的結(jié)果如下所示:

=============== RESTART: I:\python_DataStructure\quick_sort.py ===============
[49, 38, 65, 97, 76, 13, 27]
[13, 27, 38, 49, 65, 76, 97]
>>> 

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • pycharm安裝django框架詳細(xì)圖文教程(指定版本)

    pycharm安裝django框架詳細(xì)圖文教程(指定版本)

    這篇文章主要給大家介紹了關(guān)于pycharm安裝django框架(指定版本)的相關(guān)資料,PyCharm是一種Python?IDE,帶有一整套可以幫助用戶在使用Python語言開發(fā)時(shí)提高其效率的工具,需要的朋友可以參考下
    2023-10-10
  • python3 gunicorn配置文件的用法解讀

    python3 gunicorn配置文件的用法解讀

    這篇文章主要介紹了python3 gunicorn配置文件的使用,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • 利用Python實(shí)現(xiàn)熱力圖的繪制

    利用Python實(shí)現(xiàn)熱力圖的繪制

    熱力圖,是一種通過對色塊著色來顯示數(shù)據(jù)的統(tǒng)計(jì)圖表。繪圖時(shí),需指定顏色映射的規(guī)則。本文主要用Python來實(shí)現(xiàn)熱力圖的制作,需要的可以參考一下
    2022-09-09
  • python實(shí)現(xiàn)用戶名密碼校驗(yàn)

    python實(shí)現(xiàn)用戶名密碼校驗(yàn)

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)用戶名密碼校驗(yàn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • Python機(jī)器學(xué)習(xí)之決策樹和隨機(jī)森林

    Python機(jī)器學(xué)習(xí)之決策樹和隨機(jī)森林

    本文主要介紹了機(jī)器學(xué)習(xí)之決策樹和隨機(jī)森林,詳細(xì)的介紹了實(shí)現(xiàn) 原理機(jī)器實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • python中delattr刪除對象方法的代碼分析

    python中delattr刪除對象方法的代碼分析

    在本篇文章里小編給大家分享了一篇關(guān)于python中delattr刪除對象方法的代碼分析內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2020-12-12
  • Python中用于返回絕對值的abs()方法

    Python中用于返回絕對值的abs()方法

    這篇文章主要介紹了Python中用于返回絕對值的abs()方法,是Python入門中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-05-05
  • python腳本第一行如何寫

    python腳本第一行如何寫

    在本篇內(nèi)容里小編給大家整理的是一篇關(guān)于python腳本第一行如何寫相關(guān)文章,有需要的朋友們可以參考下。
    2020-08-08
  • python要安裝在哪個(gè)盤

    python要安裝在哪個(gè)盤

    在本篇文章里小編給大家分享的是一篇關(guān)于python必須裝在c盤嗎的知識點(diǎn)文章,有興趣的朋友們可以學(xué)習(xí)下。
    2020-06-06
  • 用python繪制櫻花樹

    用python繪制櫻花樹

    這篇文章主要介紹了如何用python繪制櫻花樹,幫助大家更好的使用python處理圖片,感興趣的朋友可以了解下
    2020-09-09

最新評論

平武县| 长武县| 乐陵市| 桓台县| 临猗县| 兴安县| 余姚市| 安多县| 靖安县| 阜阳市| 威信县| 弥勒县| 资中县| 万盛区| 酒泉市| 金沙县| 麦盖提县| 宁强县| 电白县| 宣威市| 噶尔县| 景洪市| 龙州县| 清丰县| 阳山县| 南部县| 亳州市| 邹城市| 崇阳县| 禹城市| 武威市| 舟曲县| 庆阳市| 讷河市| 康平县| 天全县| 新民市| 资阳市| 鄂托克前旗| 五河县| 思南县|