definsert_sort(array):for i inrange(len(array)):for j inrange(i):if array[i]< array[j]:
array.insert(j, array.pop(i))breakreturn array
希爾排序
defshell_sort(array):
gap =len(array)while gap >1:
gap = gap //2for i inrange(gap,len(array)):for j inrange(i % gap, i, gap):if array[i]< array[j]:
array[i], array[j]= array[j], array[i]return array
選擇排序
簡單選擇排序
defselect_sort(array):for i inrange(len(array)):
x = i # min indexfor j inrange(i,len(array)):if array[j]< array[x]:
x = j
array[i], array[x]= array[x], array[i]return array
defquick_sort(array):defrecursive(begin, end):if begin > end:return
l, r = begin, end
pivot = array[l]while l < r:while l < r and array[r]> pivot:
r -=1while l < r and array[l]<= pivot:
l +=1
array[l], array[r]= array[r], array[l]
array[l], array[begin]= pivot, array[l]
recursive(begin, l -1)
recursive(r +1, end)
recursive(0,len(array)-1)return array