十大排序算法及其性能总结
基本思路
算法介绍
选择排序(Selection-sort)是一种简单直观的排序算法。它的工作原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。
算法步骤
1.首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。
2.再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。
3.重复第二步,直到所有元素均排序完毕。
动图演示
代码实现
性能分析
时间复杂度
选择排序一共需要比较n-1轮(每轮找到最小的元素进行交换),第m轮比较n-m次,所以比较的总次数为:
故选择排序的时间复杂度为O(n²)
空间复杂度
选择排序不需要额外的空间,故其空间复杂度为O(1)
稳定性
由于选择出的元素可能会进行跨越式的交换,所以会破坏原本的顺序,所以不稳定。