|
|
冒泡排序:特点相邻元素交换位置,j循环每遍历一轮,冒泡一个最大值到顶部
时间复杂度:O(n*n)
空间复杂度:O(1)
稳定性:稳定
选择排序:j循环选择最小的与i交换
时间复杂度:O(n*n)
空间复杂度:O(1)
稳定性:不稳定
插入排序:将待排序依次插入已排序序列的合适位置
时间复杂度:O(n*n)
空间复杂度:O(1)
稳定性:稳定
希尔排序:插入排序的改善,定义一个间隔序列
时间复杂度:O(nlog2n)
空间复杂度:O(1)
稳定性:不稳定
快速排序:递归将数据依次分为包含较小元素和较大元素不同子序列,分治法
时间复杂度:O(nlog2n)
空间复杂度:O(nlog2n)
稳定性:不稳定
归并排序:把一系列排好序的子序列合并成一个大的完整有序序列,自顶向下(递归,深度太深,一般不用),自底向上(迭代)
时间复杂度:O(nlog2n)
空间复杂度:O(n)
稳定性:稳定