选择排序
source_arr = [4, 6, 5, 10, 3, 2, 1]
def sort_selection():
for i in range(len(sourse_arr) - 1):
v_min = i
for j in range(i + 1, len(sourse_arr)):
if sourse_arr[v_min] > sourse_arr[j]:
v_min = j
sourse_arr[i], sourse_arr[v_min] = sourse_arr[v_min], sourse_arr[i]
print(sourse_arr)
插入排序
def sort_insertion():
for i in range(1, len(sourse_arr)):
for j in range(i, 0, -1):
if sourse_arr[j] < sourse_arr[j - 1]:
sourse_arr[j], sourse_arr[j - 1] = sourse_arr[j - 1], sourse_arr[j]
else:
break
print(sourse_arr)
快速排序
def sort_quick_part(arr, start, end):
key = arr[start]
left = start + 1
right = end
while 1:
while 1:
if arr[right] < key or right == start:
break
right -= 1
while 1:
if arr[left] > key or left == end:
break
left += 1
if right <= left:
break
else:
arr[left], arr[right] = arr[right], arr[left]
arr[start], arr[right] = arr[right], arr[start]
return right
def sort_quict(arr, start, end):
if end <= start:
return
part_index = sort_quick_part(arr, start, end)
sort_quict(arr, start, part_index - 1)
sort_quict(arr, part_index + 1, end)
sort_quict(source_arr, 0, len(source_arr) - 1)
print(source_arr)