选择排序
- 第一次将最小的数跟第一个交换,第二次将第二小的数跟第二个交换……
- 时间复杂度为n²,外层遍历需要换的下标i(从0开始),内层去到第n小的数
- 最好和最坏都是n²
- 不稳定
冒泡排序
- 从左到后交换元素,循环直到最后一次不需要交换
- 如2 1 4 3->1 2 3 4
- 时间复杂度n²
- 稳定
插入排序
- 每次都将后面元素插入到前面排序好的
- 如3 2 1 4->2 3 1 4->1 2 3 4
- 最好n²(都是倒序),最坏n(一遍过都是有序)
- 稳定
归并排序
- 分为两个数组,分别排序后再弄一起
- 时间复杂度nlogn
- 稳定
快速排序
- 选择一个基数(可以是第一个),然后将小于该数的放左边,大于该数的放右边
- 然后左边右边的两个重复以上操作,直到排序完
- 时间复杂度