十大排序算法一句话概括

一句话概括十大排序算法的思想

冒泡排序:两个相邻元素比较,如果顺序相反则交换位置。

插入排序:假设前面的数字都已经排好序,再向有序数组中插入一个元素,使得插入后的数组有序。

选择排序:选择未排序数组中最大或者最小的数组放在前面。

希尔排序:按照增量不同,进行多次插入排序。

归并排序:将两个有序的数组合并成一个有序的数组,运用分治算法的思想解决排序问题。

堆排序:将数组看成一个堆,运用堆的性质完成排序。

快速排序:每次选择数组内第一个数,将大于、小于它的数分别放到它的左边、右边。

计数排序:用哈希表记录数字出现的次数,再按顺序输出。

基数排序:从低位到高位利用计数排序的思想进行排序。

桶排序:用若干个区间为一定范围的桶,将数放入对于桶内,当所有桶的数字不大于一个时停止。

排序算法的复杂度

排序算法 时间复杂度 空间复杂度
冒泡排序 O(n^2) O(1)
插入排序 O(n^2) O(1)
选择排序 O(n^2) O(1)
希尔排序 O(1)
归并排序 O(n*logn) O(n)
堆排序 O(n*logn) O(1)
快速排序 O(n*logn) O(logn)
计数排序 O(n+k) O(n)
基数排序 O(n*c) O(n)
桶排序 O(n*(logn-logm)) O(n+m)

排序算法的稳定性

排序算法的稳定性是指相等值的顺序在排序算法运行之后是否会发生变化,如果不会发生变化则为稳定排序算法,否则为非稳定排序算法。

按照排序算法的稳定性划分,属于稳定排序算法的有冒泡排序,插入排序,归并排序,计数排序,基数排序,桶排序。非稳定排序算法的有选择排序,希尔排序,堆排序,快速排序。

你可能感兴趣的:(数据结构与算法,排序算法,算法,快速排序,数据结构,堆排序)