1. Python排序
    1. 筆記

Python排序

Python排序

Python排序

筆記

這堂課顧名思義就是教排序麻,啊上了三個。
1.bubble sort:兩個兩個比,直到全部比完,不過每次比完最前面那個一定最小所以可以不用再比了,python示範:

1
2
3
4
5
6
for i in range(len(data) - 1):
for j in range(len(data) - 1, i, -1):
#print(i, j)
if data[j] < data[j-1]:
data[j], data[j-1] = data[j-1], data[j]
print(data)

2.selection sort:大概就是從後面開始一直挑最小的數字擺到前面去:

1
2
3
4
5
6
7
8
9
10
11
data = [1, 6, 3, 2]
n = len(data)
for i in range(n-1):
minIdx = i
for j in range(i + 1, n):
#print(i, j)
if data[j] < data[minIdx]: #在區間內找出j是不是目前最小
minIdx = j
data[i], data[minIdx] = data[minIdx], data[i]

print(data)

3.insertion sort:拿下一個數字並插入適當的位置:

data = [1, 6, 3, 2]
for i in range(1, len(data)):
    for j in range(i-1, -1, -1):
        if data[i] > data[j]:
            x = data.pop(i)
            data.insert(j+1, x)
            break
        if j == 0:
            x = data.pop(i)
            data.insert(0, x)
print(data)‵`