这是三种简单的 O(n²) 比较排序算法。它们在大规模输入上速度很慢,但易于理解,对于教学排序的基本原理很有用。
各自的工作原理
- 冒泡排序: 反复交换相邻的逆序对;在每一趟中,较大的值会像气泡一样"冒"到末尾。
- 选择排序: 找出未排序部分的最小值,并将其交换到正确的位置。
- 插入排序: 通过将每个新元素插入到其正确的位置,逐步扩大已排序的前缀。
示例(插入排序)
python
():
i (, (arr)):
key = arr[i]
j = i -
j >= arr[j] > key:
arr[j + ] = arr[j]
j -=
arr[j + ] = key
arr
insertion_sort([, , , ])
