选择排序

简单选择排序

  简单选择排序 VS 直接插入排序

  简单选择排序是指每次从序列中选择出最小的元素,每一趟排序可以确定一个元素的最终位置。

  空间复杂度:仅仅每趟交换元素,O(1)

  时间复杂度:比较次数与初始状态无关,移动次数比较少

  稳定:不稳定

  补充说明不稳定:

  序列5 8 5 2 9,我们知道第一遍选择第1个元素5会和2交换,那么原序列中2个5的相对前后顺序就被破坏了,所以选择排序不是一个稳定的排序算法。

堆排序

  最大堆的定义:对于每个结点,左右孩子的结点的值都小于父节点。

  构建初始堆

  从最后一个非叶子结点开始,挑选左右子女关键字较大者。之后依次对各结点为根的子树进行筛选。向下调整的时间复杂度和树高有

  关,为 O(h)。时间复杂度为 O(n)。

  堆排序

  每次把堆顶元素输出,然后向下调整。

  空间:O(1)

  时间:建堆 O(n),之后每次向下调整的时间复杂度为 O(h),故堆排序的时间复杂度为 O(nlog2)

  稳定性:不稳定

 

  

posted @ 2020-04-27 16:01  天凉好个秋秋  阅读(146)  评论(0编辑  收藏  举报