刚学习完十种排序算法,记录一下。
1.冒泡排序:比较相邻两个值的大小,如果前者大于后者,交换二者位置
def sort1(arr): for i in range(len(arr)-1, 0, -1): for j in range(0, i): if arr[j] > arr[j+1]: arr[j], arr[j+1] = arr[j+1], arr[j] return arr
2.选择排序:每次在未排序的序列中选择最小的放在已排序的序列末尾
def sort2(arr): for i in range(len(arr)-1): mid = i for j in range(i+1, len(arr)): if arr[j] < arr[mid]: mid = j if i != mid: arr[i], arr[mid] = arr[mid], arr[i] return arr
3.插入排序:第一个元素为有序序列,其余元素为无序序列,扫描无序序列的每个元素,插入有序序列的位置(相等插入到有序序列元素后面)
def sort3(arr): for i in range(len(arr)): pre = i-1 cur = arr[i] while pre >= 0 and arr[pre] > cur: arr[pre+1] = arr[pre] pre -= 1 arr[pre+1] =