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

Python實現(xiàn)排序方法常見的四種

 更新時間:2021年07月15日 11:03:23   作者:小小程序員ol  
本文給大家分享python四種常見排序方法,每種方法通過實例代碼給大家介紹的非常詳細,需要的朋友參考下吧

1.冒泡排序,相鄰位置比較大小,將比較大的(或小的)交換位置

def maopao(a):
    for i in range(0,len(a)):
        for j in range(0,len(a)-i-1):
            if a[j]>a[j+1]:
                temp = a[j+1]
                a[j+1] = a[j]
                a[j] = temp
                #print(a)
        #print(a)
    print(a)

2.選擇排序,遍歷選擇一個最小的數(shù)與當前循環(huán)的第一個數(shù)交換

def xuanze(a):
    for i in range(0,len(a)):
        k=i
        temp = a[i]
        for j in range(i,len(a)):
            if a[j]<temp:
                temp = a[j]
                k = j
        a[k] = a[i]
        a[i] = temp
    print(a)

3.快速排序:將子段的第一個元素做為中值,先從右向左遍歷,如過比中值大high-1,如果比中值小,將這個值放到low那里。

然后從左向右開始遍歷,如果左側(cè)的比中值大,將他放到high那里。當low>=high時,將中值的值賦給low

(1.以下為參照公眾號中的做法:

a =[7,1,3,2,6,54,4,4,5,8,12,34]
def sort(a,low,high): 
    while low < high:
        temp = a[low]
        while low < high and a[high]>=temp:
            high = high-1
        a[low]=a[high]
        while low<high and a[low]<temp:
            low = low+1
        a[high]=a[low]           
        a[low]=temp
    return low
def quicksort(a,low,high):
    if low<high:
        middle = sort(a,low,high)
        quicksort(a,low,middle)
        quicksort(a,middle+1,high)
        print(a)
sort(a,0,len(a)-1)
quicksort(a,0,len(a)-1)
print(a)

(2.以下是參照網(wǎng)上的做法:

在做快速排序時一直各種問題,是因為地柜那里沒有考慮清楚,一直把low的值賦值為0了,實際上應該是不固定的low值,他每個子循環(huán)不定。

'''
遇到問題沒人解答?小編創(chuàng)建了一個Python學習交流群:531509025
尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書!
'''
a =[7,1,3,2,6,54,4,4,5,8,12,34]
def sort(a,low,high): 
    while low < high:
        temp = a[low]
        while low < high and a[high]>=temp:
            high = high-1
        while low<high and a[high]<temp:
            a[low]=a[high]           
            low =low+1
            a[high]=a[low]
        a[low]=temp
    return low
def quicksort(a,low,high):
    if low<high:
        middle = sort(a,low,high)
        quicksort(a,low,middle)
        quicksort(a,middle+1,high)
        print(a)
sort(a,0,len(a)-1)
quicksort(a,0,len(a)-1)
print(a)

4.插入排序:從左向右遍歷,依次選取數(shù)值,從數(shù)值的左側(cè)從右向左遍歷,選擇第一個比他小的數(shù)值的右側(cè)插入該數(shù)值,其他數(shù)值依次向后賦值

#插入排序
a =[7,1,3,2,6,54,4,4,5,8,12,34]
for i in range(0,len(a)-1):
    temp=a[i+1]
    j=i+1
    while j>=0 and temp<a[j-1]:
        j=j-1      
        print(j)
    if j>=-1:
        k= i+1
        while k>=j:
            a[k]=a[k-1]
            k=k-1
            print(a)
        a[j]=temp
print(a)

插入排序方法2,用到了列表的a.insert(1,2)和清楚a[2:3]=[],這樣可以少用一個循環(huán)

a =[7,1,3,2,6,54,4,4,5,8,12,34]
for i in range(1,len(a)-1):
    temp=a[i]
   
    j=i-1
    while j>=0 and temp<=a[j]:
        print(temp)
        j=j-1
    if j >=-1:
        a[i:i+1]=[]
        a.insert(j+1,temp)
        print(a)
print(a)

到此這篇關(guān)于Python實現(xiàn)排序的四種方法的文章就介紹到這了,更多相關(guān)python排序方法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python計算波峰波谷值的方法(極值點)

    python計算波峰波谷值的方法(極值點)

    這篇文章主要介紹了python求極值點(波峰波谷)求極值點主要用到了scipy庫,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-02-02
  • Flask框架路由和視圖用法實例分析

    Flask框架路由和視圖用法實例分析

    這篇文章主要介紹了Flask框架路由和視圖用法,結(jié)合實例形式分析了Flask路由和視圖相關(guān)原理、定義與使用方法,需要的朋友可以參考下
    2019-11-11
  • Python turtle庫的畫筆控制說明

    Python turtle庫的畫筆控制說明

    這篇文章主要介紹了Python turtle庫的畫筆控制說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • 對Tensorflow中的矩陣運算函數(shù)詳解

    對Tensorflow中的矩陣運算函數(shù)詳解

    今天小編就為大家分享一篇對Tensorflow中的矩陣運算函數(shù)詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • Tensorflow: 從checkpoint文件中讀取tensor方式

    Tensorflow: 從checkpoint文件中讀取tensor方式

    今天小編就為大家分享一篇Tensorflow: 從checkpoint文件中讀取tensor方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • Python中時間類型的JSON數(shù)據(jù)轉(zhuǎn)換

    Python中時間類型的JSON數(shù)據(jù)轉(zhuǎn)換

    在Python中,處理時間和日期數(shù)據(jù)以及與JSON數(shù)據(jù)的相互轉(zhuǎn)換是常見的任務,本文主要為大家詳細如何在Python中處理時間類型的JSON數(shù)據(jù)轉(zhuǎn)換,需要的小伙伴可以參考下
    2024-02-02
  • python快速建立超簡單的web服務器的實現(xiàn)方法

    python快速建立超簡單的web服務器的實現(xiàn)方法

    某些條件測試,需要一個簡單的web服務器測試一下,為此專門去配置個nginx 或者 apache服務器略顯麻煩,這里就為大家介紹一下使用python快速建立超簡單的web服務器的方法,需要的朋友可以參考下
    2018-02-02
  • 詳解Python連接MySQL數(shù)據(jù)庫的多種方式

    詳解Python連接MySQL數(shù)據(jù)庫的多種方式

    這篇文章主要介紹了Python連接MySQL數(shù)據(jù)庫方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-04-04
  • Python中的id()函數(shù)指的什么

    Python中的id()函數(shù)指的什么

    id() 函數(shù)用于獲取對象的內(nèi)存地址。很多朋友不清楚python中的id函數(shù)到底是什么?接下來小編給大家分享本文幫助大家學習
    2017-10-10
  • Python入門之基礎語法詳解

    Python入門之基礎語法詳解

    這篇文章主要介紹了Python入門之基礎語法詳解,文中有非常詳細的代碼示例,對正在學習python的小伙伴們有很大的幫助喲,需要的朋友可以參考下
    2021-05-05

最新評論

佛坪县| 龙岩市| 沙坪坝区| 太湖县| 开平市| 永州市| 屯昌县| 金平| 翁牛特旗| 雅江县| 北海市| 资溪县| 台中市| 孟津县| 永新县| 镇沅| 石城县| 宾川县| 平和县| 巴东县| 天水市| 和平县| 阳城县| 枣阳市| 无为县| 威宁| 日土县| 黄大仙区| 阜城县| 青田县| 宿州市| 泰宁县| 榆社县| 错那县| 昌江| 民勤县| 关岭| 习水县| 驻马店市| 克什克腾旗| 五家渠市|