Python選擇排序(1)

2022-07-22 08:12:07 字數 1035 閱讀 3211

python**:

"""

選擇排序(1)直接選擇排序

每次從未排序陣列中找出最小的數

如果該數不是第1個數則將其與第1個數交換

例如:1) 從[3,4,1,2]中找出最小的數1,將數1與第1個數3交換,得到[1,4,3,2]

2) 從[4,3,2]找出最小的數2,將數2與第1個數4交換,得到[2,3,4]

"""#

希爾排序

defselectsort(lst):

for i in

range(len(lst)):

pos =i

for j in

range(i,len(lst)):

if lst[j] pos =j

if pos !=i:

lst[i],lst[pos] =lst[pos],lst[i]

print("

選擇交換:[%s]:%s [%s]:%s

" %(i,lst[i],pos,lst[pos]))

if__name__ == "

__main__":

lst = [3, 6, 9, 1, 4, 7, 2, 8, 5, 0]

print("

排序前: %s\r\n

" %lst)

selectsort(lst)

print("

\r\n排序後: %s

" % lst)

輸出結果:

e:\python\algorithm>python3 selectsort.py

排序前: [3, 6, 9, 1, 4, 7, 2, 8, 5, 0]

選擇交換後:[0]:0 [9]:3選擇交換後:[1]:1 [3]:6選擇交換後:[2]:2 [6]:9選擇交換後:[3]:3 [9]:6選擇交換後:[5]:5 [8]:7選擇交換後:[6]:6 [9]:9選擇交換後:[7]:7 [8]:8排序後: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

*****結束*****

1 選擇排序

選擇排序演算法思想描述 1 定義變數minindex每次都指向全域性最小值 2 從陣列0位置開始,minindex 0,把1 n 1位置上的每乙個數依次取出 用下標j指向 和minindex位置的數比較,如果取出的這個數arr j 比arr minindex 的數小,更新minindex j,否則不...

C 排序 1 選擇排序

排序方法分為以下幾種,我將在接下來的幾篇blog中,介紹每一種。首先是比較簡單的選擇排序中的直接選擇排序。時間按複雜度為o n 2 空間複雜度為o 1 是一種不穩定的排序方法。具體形式如下圖所示 第一次從9,1,4,6,2中選擇最小的,即1,將1與 a 0 9調換位置,確定了第乙個位置的資料元素 第...

Python 選擇排序

coding utf 8 選擇排序 在所有記錄中選擇最小的乙個元素,與第乙個記錄交換,依次,在其餘的記錄中選擇最小的元素與第二個元素交換 def sellectsort list list 4,1,9,13,34,26,10,7,4 m len list if m 2 如果是空表或只有乙個元素,返回...