Python排序算法之選擇排序定義與用法示例
本文實(shí)例講述了Python排序算法之選擇排序定義與用法。分享給大家供大家參考,具體如下:
選擇排序
選擇排序比較好理解,好像是在一堆大小不一的球中進(jìn)行選擇(以從小到大,先選最小球?yàn)槔?/p>
1. 選擇一個(gè)基準(zhǔn)球
2. 將基準(zhǔn)球和余下的球進(jìn)行一一比較,如果比基準(zhǔn)球小,則進(jìn)行交換
3. 第一輪過后獲得最小的球
4. 在挑一個(gè)基準(zhǔn)球,執(zhí)行相同的動(dòng)作得到次小的球
5. 繼續(xù)執(zhí)行4,直到排序好
時(shí)間復(fù)雜度:O(n^2). 需要進(jìn)行的比較次數(shù)為第一輪 n-1,n-2....1, 總的比較次數(shù)為 n*(n-1)/2
直接上代碼:
def selectedSort(myList): #獲取list的長度 length = len(myList) #一共進(jìn)行多少輪比較 for i in range(0,length-1): #默認(rèn)設(shè)置最小值得index為當(dāng)前值 smallest = i #用當(dāng)先最小index的值分別與后面的值進(jìn)行比較,以便獲取最小index for j in range(i+1,length): #如果找到比當(dāng)前值小的index,則進(jìn)行兩值交換 if myList[j]<myList[smallest]: tmp = myList[j] myList[j] = myList[smallest] myList[smallest]=tmp #打印每一輪比較好的列表 print("Round ",i,": ",myList) myList = [1,4,5,0,6] print("Selected Sort: ") selectedSort(myList)
執(zhí)行結(jié)果:
PS:這里再為大家推薦一款關(guān)于排序的演示工具供大家參考:
在線動(dòng)畫演示插入/選擇/冒泡/歸并/希爾/快速排序算法過程工具:
http://tools.jb51.net/aideddesign/paixu_ys
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python列表(list)操作技巧總結(jié)》、《Python編碼操作技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門與進(jìn)階經(jīng)典教程》
希望本文所述對大家Python程序設(shè)計(jì)有所幫助。
- Python實(shí)現(xiàn)插入排序和選擇排序的方法
- Python實(shí)現(xiàn)的插入排序,冒泡排序,快速排序,選擇排序算法示例
- Python 實(shí)現(xiàn)選擇排序的算法步驟
- Python排序搜索基本算法之選擇排序?qū)嵗治?/a>
- Python tkinter 樹形列表控件(Treeview)的使用方法
- python GUI庫圖形界面開發(fā)之PyQt5樹形結(jié)構(gòu)控件QTreeWidget詳細(xì)使用方法與實(shí)例
- 一行python實(shí)現(xiàn)樹形結(jié)構(gòu)的方法
- python實(shí)現(xiàn)樹形打印目錄結(jié)構(gòu)
- Python如何生成樹形圖案
- Python 選擇排序中的樹形選擇排序
相關(guān)文章
解決python2.7用pip安裝包時(shí)出現(xiàn)錯(cuò)誤的問題
這篇文章主要介紹了在python2.7用pip安裝包時(shí)出現(xiàn)錯(cuò)誤問題的解決方法,需要的朋友可以參考借鑒,下面來一起看看吧。2017-01-01Pytorch中expand()的使用(擴(kuò)展某個(gè)維度)
這篇文章主要介紹了Pytorch中expand()的使用(擴(kuò)展某個(gè)維度),具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07使用Pandas實(shí)現(xiàn)數(shù)據(jù)的清理的入門詳解
數(shù)據(jù)清理是數(shù)據(jù)分析過程中的關(guān)鍵步驟,它涉及識別缺失值、重復(fù)行、異常值和不正確的數(shù)據(jù)類型,本文將介紹6個(gè)經(jīng)常使用的數(shù)據(jù)清理操作,希望對大家有所幫助2023-08-08利用Tensorflow構(gòu)建和訓(xùn)練自己的CNN來做簡單的驗(yàn)證碼識別方式
今天小編就為大家分享一篇利用Tensorflow構(gòu)建和訓(xùn)練自己的CNN來做簡單的驗(yàn)證碼識別方式,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-01-01