中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python排序問題怎么解決

發布時間:2023-04-15 14:38:41 來源:億速云 閱讀:217 作者:iii 欄目:開發技術

本文小編為大家詳細介紹“Python排序問題怎么解決”,內容詳細,步驟清晰,細節處理妥當,希望這篇“Python排序問題怎么解決”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

1.冒泡排序

冒泡排序(Bubble Sort,臺灣譯為:泡沫排序或氣泡排序)是一種簡單的排序算法。它重復地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重復地進行直到沒有再需要交換,也就是說該數列已經排序完成。

這個算法的名字由來是因為越大的元素會經由交換慢慢“浮”到數列的頂端,故名。

Python排序問題怎么解決

import random as r
 
#寫入數據
def add(li=[]):
    num=int(input(''))
    if num==-1:
        return li
    li.append(num)
    return add(li)
#排序
def bubble(li):
    for i in range(0,len(li)):
        for j in range(0,len(li)-i-1):
            if li[j]>li[j+1]:
                li[j]=li[j]^li[j+1]
                li[j+1]=li[j]^li[j+1]
                li[j] = li[j] ^ li[j + 1]
    return li
if __name__=='__main__':
    #輸入:
    l=add()
    r.shuffle(l)
    print('排序前:',l)
    newlist2=bubble(l)
    print('2.排序后:',newlist2)

2.選擇排序

選擇排序(Selection sort)是一種簡單直觀的排序算法。它的工作原理是每一次從待排序的數據元素中選出最小(或最大)的一個元素,存放在序列的起始位置,直到全部待排序的數據元素排完。 選擇排序是不穩定的排序方法(比如序列[5, 5, 3]第一次就將第一個[5]與[3]交換,導致第一個5挪動到第二個5后面)。

Python排序問題怎么解決

import random as r
 
#寫入數據
def add(li=[]):
    num=int(input(''))
    if num==-1:
        return li
    li.append(num)
    return add(li)
#選擇排序
def choose(li):
    for i in range(0,len(li)-1):
        for j in range(i+1,len(li)):
            if li[i]>li[j]:
                li[j] = li[j] ^ li[i]
                li[i] = li[j] ^ li[i]
                li[j] = li[j] ^ li[i]
    return li
 
if __name__=='__main__':
    #輸入:
    l=add()
    r.shuffle(l) #打亂列表的順序
    print('排序前:',l)
    newlist3=choose(l)
    print('3.排序后:',newlist3)

3.插入排序

有一個已經有序的數據序列,要求在這個已經排好的數據序列中插入一個數,但要求插入后此數據序列仍然有序,這個時候就要用到一種新的排序方法--插入排序法,插入排序的基本操作就是將一個數據插入到已經排好序的有序數據中,從而得到一個新的、個數加一的有序數據,算法適用于少量數據的排序,時間復雜度為O(n^2)。是穩定的排序方法。插入算法把要排序的數組分成兩部分:第一部分包含了這個數組的所有元素,但將最后一個元素除外(讓數組多一個空間才有插入的位置),而第二部分就只包含這一個元素(即待插入元素)。在第一部分排序完成后,再將這個最后元素插入到已排好序的第一部分中。

插入排序的基本思想是:每步將一個待排序的紀錄,按其關鍵碼值的大小插入前面已經排序的文件中適當位置上,直到全部插入完為止。

Python排序問題怎么解決

import random as r
 
#寫入數據
def add(li=[]):
    num=int(input(''))
    if num==-1:
        return li
    li.append(num)
    return add(li)
#插入排序
def insert(li):
    for i in range(1,len(li)):
        num=li[i]
        j=i-1
        while j>=0 and li[j]>num:
            li[j+1]=li[j]
            li[j]=num
            j+=1
    return li
 
if __name__=='__main__':
    #輸入:
    l=add()
    r.shuffle(l) #打亂列表的順序
    print('排序前:',l)
    newlist4=insert(l)
    print('4.排序后:',newlist4)

讀到這里,這篇“Python排序問題怎么解決”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

萨迦县| 南溪县| 谢通门县| 赤城县| 金华市| 密山市| 锡林浩特市| 崇州市| 漳州市| 澎湖县| 普宁市| 大庆市| 镇巴县| 泰州市| 措勤县| 白山市| 平舆县| 眉山市| 昌都县| 新营市| 舒兰市| 临安市| 聊城市| 渑池县| 吴江市| 鸡西市| 北宁市| 军事| 宁河县| 遂昌县| 翁源县| 潮安县| 繁昌县| 维西| 申扎县| 怀集县| 昌江| 钟祥市| 包头市| 龙州县| 同江市|