- 20200602
一、记忆关键点
A、冒泡排序
- 单指针
- 每次将最大点挪动到 n-i 位置
B、选择排序
- 双指针
- 调换指针将最小放到 i 位置
C、插入排序
- 单指针
- 每次将i位置的值挪动到 0~i 之间
二、代码区别
排序 | 冒泡排序 | 选择排序 | 插入排序 |
---|---|---|---|
循环1 | for j in range(n-1,0,-1) | for i in range(n-1) | for i in range(1, n) |
作用(位置) | n-i 为存放位置 | i 为存放位置 | 0~i 为存放位置 |
循环2 | for i in range(j) | for j in range(i+1, n) | for j in range(i, 0, -1) |
作用(查询) | 0~j 向后挪动最大值 | i+1~n 查询最小值 | 将i向前挪动插入 0~i 之间 |
赋值方式 | list[i], list[i+1] = list[i+1], list[i] | list[i], list[min_index] = list[min_index], list[i] | list[j], list[j-1] = list[j-1], list[j] |