1. 程式人生 > 其它 >用python程式碼來實現選擇排序

用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))