選擇排序——Python實現

選擇排序Python實現

# -*- coding: utf-8 -*-
# @Time    : 2019/10/28 20:06
# @Author  : yuzhou_1shu
# @Email   : yuzhou_1shu@163.com
# @File    : selection_sort.py
# @Software: PyCharm


def selection_sort(collection):
    """
    用Python實現的插入排序算法
    :param collection: 待排序序列
    :return: 升序排好的對應序列
    """
    length = len(collection)
    # 算法核心是每次選取一個最小的元素放在第一位
    for i in range(length - 1):
        # 首先假設第一位是最小的,並用min_loc記錄下這個位置
        min_loc = i
        # j從i+1也就是第二位開始循環,找有沒有比min_loc位置上更小的元素
        for j in range(i + 1, length):
            # 若是找到了,修改min_loc
            if collection[j] < collection[min_loc]:
                min_loc = j
        # 經過上層循環找到最小值,每次將最小值與當前位置的值進行交換
        if min_loc != i:
            collection[min_loc], collection[i] = (collection[i], collection[min_loc])
    return collection

if __name__ == "__main__":

    list1 = [5, 5, 1, 4, 1, 2, 3]
    print("排序前: ", list1)
    print("排序後: ", selection_sort(list1))
相關文章
相關標籤/搜索