Python 選擇排序

2021-07-04 04:49:07 字數 796 閱讀 2788

# -*- coding:utf-8-*-

'''選擇排序

在所有記錄中選擇最小的乙個元素,與第乙個記錄交換,依次,在其餘的記錄中選擇最小的元素與第二個元素交換

'''def sellectsort(list):

# list = [4,1,9,13,34,26,10,7,4]

m = len(list)

if m < 2: # 如果是空表或只有乙個元素,返回

return list

for i in range(m): # 對每乙個元素

index = i # 當前元素序號

for j in range(i,m): # 從列表中剩餘的元素中選擇最小的

if list[j] < list[index]:

index = j

if i != index: # 如果當前元素大於選出的最小元素,交換:將最小元素與當前元素交換

list[index],list[i] = list[i],list[index]

return list

if __name__== '__main__':

list_0 = [4,1,9,13,34,26,10,7,4]

list_1 = sellectsort(list_0)

print list_1

演算法效能:

1. 無**件初始狀態如何,在第i趟排序中選出最小元素,續作n-i次比較,因此總的比較次數是o(n**2)

2. 平均時間複雜度是o(n**2),空間複雜度是o(1)

python選擇排序

選擇排序是不穩定的排序方法 比如序列 5,5,3 第一次就將第乙個 5 與 3 交換,導致第乙個5挪動到第二個5後面 data set 9,1,22,31,45,3,6,2,11 smallest num index 0 初始列表最小值,預設為第乙個 loop count 0 for j in ra...

選擇排序python

python 選擇排序 選擇排序 selection sort 是一種簡單直觀的排序演算法。它的工作原理如下。首先在未排序序列中找到最小 大 元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小 大 元素,然後放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。菜鳥教程的圖很清...

python選擇排序

arr list map int input 輸入三個數組成的列表 split 通過這種方式輸入列表,用空格區分 選擇排序 defcompare arr for i in range len arr 1 從列表第乙個元素起,假設它為最小元素每個與其後元素比較 min index i for j in...