1. 程式人生 > 其它 >python學習——python實現選擇排序演算法

python學習——python實現選擇排序演算法

技術標籤:python學習python排序演算法選擇排序

python實現選擇排序演算法

一、選擇排序演算法實現原理

基本思想

  • 首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。
  • 再從剩餘未排序元素中繼續尋找最小(大)元素,然後放到已排序序列的末尾。
  • 重複第二步,直到所有元素均排序完畢。

具體步驟

  1. 從第一個數開始計數基準(為最小值),記錄下標
  2. 迴圈比較後面的數,記錄比基準小的數的下標,直到最後一個數比較後,將當前最小值下標與基準替換
  3. 從下標為第幾次迴圈開始繼續1,2操作,直到迴圈列表長度-1的次數為止

二、圖解選擇排序

在這裡插入圖片描述

三、py程式碼實現選擇排序演算法

關鍵程式碼:

def select_sort(arr):
    """ 選擇排序:先將第一次選擇為最小的一個  然後對後面的所有進行選擇,將最小的放入前面

    :param arr: 需要排序的陣列
    """
    if len(arr) <= 1:
        return
    # 最小值從第一個開始
    i = 0
    # 外迴圈控制迴圈的次數 每一次迴圈結束,最小的數在最前面
    while i < len(arr):
     # 從第二個開始比較
j = i + 1 # 當前最小值下標 minIndex = i # 內迴圈控制比較的次數 while j < len(arr): # 如果當前比較值比最小值小 就記住當前下標為最小值下標 if arr[j] < arr[minIndex]: minIndex = j j += 1 # 將當前最小值替換當前面 temp = arr[i] arr[i]
= arr[minIndex] arr[minIndex] = temp i += 1

執行:

# 定義一個列表
arr = [2, 3, 1, 5, 10, 6, 3, 4, 8]
print(arr)
select_sort(arr)
print(arr)

列印結果:

[2, 3, 1, 5, 10, 6, 3, 4, 8]
[1, 2, 3, 3, 4, 5, 6, 8, 10]