基本排序:冒泡排序,选择排序,插入排序。
高等排序:快速排序,归并排序,希尔排序,堆排序。
这是我个人的理解,后三种排序是基于前三种排序的基础上进行完全完善的。
冒泡排序
时间复杂度:O(n^2) 空间复杂度: O(1)
本质:交换.
每次通过交换的方式把当前剩余元素的最大值移动到一端,而当剩余元素减少为0时,排序结束。
举例:3 4 1 5 2 按照要求把它们从小到大的顺序排列。
第一趟:3 4 1 5 2 (a[0]与a[1]比较) ===> 3 1 4 5 2 (a[1]与a[2]比较)===> 3 1 4 5 2 (a[2]与a[3]比较) ===> 3 1 4 2 5 (a[3]与a[4]比较).
第二趟:1 3 4 2 5 (a[0]与a[1]比较) ===>1 3 4 2 5 (a[1]与a[2]比较)===>1 3 2 4 5 (a[2]与a[3]比较).
第三趟:1 3 2 4 5 (a[0]与a[1]比较) ===>1 2 3 4 5 (a[1]与a[2]比较).
第四趟:1 2 3 4 5 (a[0]与a[1]比较) .
所以说冒泡排序整个过程执行n-1趟&#x