一。冒泡排序:
列表每两个相邻的数,如果前面比后面大,则交换这两个数
一趟排序完成后,则无序区减少一个数,有序区增加一个数
时间复杂度:O(n*n)
优化后:已经排序好后立马停止,加快速度
二。选择排序:
方法一:开辟一个新的列表,对于原来列表中最小的值进行不断添加于新列表
缺点:开辟2块空间,增加储存量
时间复杂度O(n*n*n)
方法二:在原有的基础上设置进行排序,首先设置第一个数为最小数,再与后面的数进行不断地比较,再交换
时间复杂度O(n*n)
三。插入排序:
时间复杂度O(n*n)
四。快速排序
实现思路:取第一个元素p,使元素p归位,列表被p分成两个部分,左边都比p小,右边都比p大,再进行递归完成排序
时间复杂度:O(nlogn)
在最坏的条件下(每次找mid发现有一边没有任何数,则每次遍历的结果只排列一个数),此时的时间复杂度为:O(n*n)