'''
原理:
balabala
'''
import random
def bubble_sort(seq):
n = len(seq)
for i in range(n-1):
for j in range(n-i-1):
if seq[j] > seq[j+1]:
seq[j], seq[j+1] = seq[j+1], seq[j]
return seq
# def test_bubble_sort():
# seq = list(range(10))
# random.shuffle(seq)
# sorted_seq = sorted(seq)
# bubble_sort(seq)
# assert seq == sorted_seq
# assert 0
'''选择排序'''
def select_sort(seq):
n = len(seq)
for i in range(n-1):
min_idx = i
for j in range(n-1-i):
if seq[j] < seq[min_idx]:
mid_idx = j
if min_idx != i:
seq[i], seq[min_idx] = seq[min_idx], seq[i]
# def test_select_sort():
# seq = list(range(10))
# random.shuffle(seq)
# sorted_seq = sorted(seq)
# select_sort(seq)
# assert seq == sorted_seq
# assert 0
'''插入排序'''
def insertion_sort(seq):
n = len(seq)
for i in range(1, n):
value = seq[i]
pos = i
while pos > 0 and value < seq[pos-1]:
seq[pos], seq[pos-1] = seq[pos-1], seq[pos]
pos -= 1
seq[pos] = value
def test_insert_sort():
seq = list(range(10))
random.shuffle(seq)
sorted_seq = sorted(seq)
insertion_sort(seq)
assert seq == sorted_seq
assert 0