用python程式碼來實現選擇排序
依照慣例,在寫每一篇帖子之前,筆者都會遵循以下幾點原則:
1、如果一個什麼都不懂的人都能把這篇文章看懂,那就說明這篇部落格通俗易懂
2、儘量保持排版整齊,讓讀者閱讀起來不是那麼累,簡單舒服即可
3、儘可能的保證所寫的東西是正確的,若能幫到疑惑中的你一點點小作用,是筆者堅持寫下去的動力
一、選擇排序
什麼是選擇排序?
選擇排序的原理是什麼?
能不能用python程式碼敲出一個例項?
這是接下來這篇文章要講清楚的三個問題。
選擇排序:從字面意思上來看,是選,說明極有可能是選元素。其實質上就是每一輪選擇出一個元素,並調換位置即可。
接下來,我舉個例子,用選擇排序的方法,進行升序排列;說白了就是每一輪選出最小的元素而已
請看如下列表:【11、25、2、88、9、76、43】,我們對它先進行分析
第一輪,找出最小元素2,把它放在最前面,因此2與11的位置互換,變成 2、25、11、88、9、76、43
此時,已經選擇出最小元素2,那麼在後面的元素中,再找出最小的元素
第二輪,找出最小元素9,把它放在前面,25與9的位置互換,變成 2、9、11、88、25、76、43
此時,已經選擇出元素9,那麼繼續在後面的元素中找
第三輪,找出最小元素11,剛好在第一個,不用變,仍然為 2、9、11、88、25、76、43
第四輪,找出最小元素25,放在最前面,88與25的位置互換,變成 2、9、11、25、88、76、43
此時已經選擇出元素2、9、11、25,還剩三個未選擇
第五輪,找出最小元素43,放在最前面,88和43的位置互換,變成2、9、11、25、43、76、88
因此,這樣就可以經過排序將列表的元素升序排列出來
看下面的python程式碼實現:
def select_Sort(arr): for i in range(len(arr) - 1): # 記錄最小數的索引 minIndex = i for j in range(i + 1, len(arr)): if arr[j] < arr[minIndex]: minIndex = j # i 不是最小數時,將 i 和最小數進行交換 if i != minIndex: arr[i], arr[minIndex] = arr[minIndex], arr[i] return arr li2 = [11, 25, 2, 88, 9, 76, 43] print(select_Sort(li2))