個人技術(shù)博客地址:http://songmingyao.com/
原理
- 默認最左側(cè)的元素為最小,而后依次將右側(cè)的每個元素與最左側(cè)的元素比較疑俭,如果比最左測的元素小祷安,則交換位置
- 第一遍遍歷會將最小的元素放在最左邊,而后繼續(xù)遍歷瓜客,依次得出第二小俭正、第三小...第二大的元素
源碼
def select_sort(l):
n = len(l)
for i in range(n-1):
for j in range(i+1, n):
# 一開始默認下標為i的值最小
if l[j] < l[i]:
l[j], l[i] = l[i], l[j]
if __name__ == '__main__':
l = [6, 5, 2, 8, 9, 4, 1, 0, 3, 7]
print(l)
select_sort(l)
print(l)
時間復(fù)雜度
- 最優(yōu)時間復(fù)雜度:O(n2)
- 最壞時間復(fù)雜度:O(n2)
- 穩(wěn)定性(多個元素等值的情況下是否會破壞原有順序):不穩(wěn)定