八大排序算法的Python實現(xiàn)__2__選擇排序

個人技術(shù)博客地址:http://songmingyao.com/


原理

  • 默認(rèn)最左側(cè)的元素為最小,而后依次將右側(cè)的每個元素與最左側(cè)的元素比較,如果比最左測的元素小,則交換位置
  • 第一遍遍歷會將最小的元素放在最左邊,而后繼續(xù)遍歷,依次得出第二小、第三小...第二大的元素

源碼

def select_sort(l):
    n = len(l)
    for i in range(n-1):
        for j in range(i+1, n):
            # 一開始默認(rèn)下標(biāo)為i的值最小
            if l[j] < l[i]:
                l[j], l[i] = l[i], l[j]


if __name__ == '__main__':
    l = [6, 5, 2, 8, 9, 4, 1, 0, 3, 7]
    print(l)
    select_sort(l)
    print(l)

時間復(fù)雜度

  • 最優(yōu)時間復(fù)雜度:O(n2)
  • 最壞時間復(fù)雜度:O(n2)
  • 穩(wěn)定性(多個元素等值的情況下是否會破壞原有順序):不穩(wěn)定
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容