选择排序

  • 第一次将最小的数跟第一个交换,第二次将第二小的数跟第二个交换……
  • 时间复杂度为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
  • 稳定

快速排序

  • 选择一个基数(可以是第一个),然后将小于该数的放左边,大于该数的放右边
  • 然后左边右边的两个重复以上操作,直到排序完
  • 时间复杂度