基本思想:在要排序的一组数中,选出最小的一个数与第一个位置的数交换;然后在剩下的数当中再找最小的与第二个位置的数交换,
如此循环到倒数第二个数和最后一个数比较为止。
选择排序(Selection sort)也是一种简单直观的排序算法。
选择排序是通过遍历每一次都找出最小(最大)的数查找出来放在第一位,然后从第二个元素开始重复上边的动作即可完成排序。选择排序的时间复杂度为哦(n^2),且为非稳定排序算法。
算法步骤:
简单选择排序的主要优点与数据移动有关。如果某个元素位于正确的最终位置上,则它不会被移动。
就交换次数而言,在最好情况下,交换次数为0;在最坏的情况下,交换次数为n-1。
无论最好最坏情况,其比较次数都是一样多的,基于最终的排序时间是比较和交换的次数总和,其时间复杂度为Θ(n2)。
在所有的完全依靠交换去移动元素的排序方法中,选择排序属于非常好的一种。
空间复杂度:
很明显,其空间复杂度为Θ(1)。
基本思想:选择一个基准元素通常选择第一个元素或者最后一个元素通过一趟扫描,将待排序列分成两部分一部分比基准元素小一部分大于等于基准元素此时基准元素在其排好序后的正确位置然后再用同样的方法递归地排序划分的两部分。 快速排序是由东尼
基本思想:在要排序的一组数中,假设前面(n-1)[n>=2] 个数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序。 插入排序是最简单的排序算法,插入排序最差的复杂度是