defbubble_sort(arr): length = len(arr) for i inrange(1,length+1): for j inrange(1,length-i+1): if arr[j-1]>arr[j]: arr[j-1],arr[j] = arr[j],arr[j-1] return arr
选择排序
1 2 3 4 5 6 7
defselect_sort(arr): length = len(arr) for i inrange(length): for j inrange(i+1,length): if arr[i]>arr[j]: arr[i],arr[j] = arr[j],arr[i] return arr
插入排序
1 2 3 4 5 6 7 8 9 10 11 12
# 插入排序,是跟前一个比较 比前一个小就往前移动 definsert_sort(arr): length = len(arr) for i inrange(1,length): loop_index = i while loop_index>0and arr[loop_index-1]>arr[loop_index]: count+=1 arr[loop_index-1] ,arr[loop_index] = arr[loop_index],arr[loop_index-1] loop_index -=1 return arr
快速排序
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
# 快速排序
defquick_sort(arr): length = len(arr) if length <= 1: return arr else: middle = arr.pop() bigs,smalls = [],[] for i in arr: if i <middle: smalls.append(i) else: bigs.append(i) return quick_sort(smalls) + [middle] + quick_sort(bigs)