第八章学习笔记

一、插入排序

  1.直接插入

    时间复杂度:O(nn)

    稳定性:稳定

  2.折半插入

    基于插入排序和折半查找,用折半查找来找到插入位置,节省时间。

    时间复杂度:O(n2)

    稳定性:稳定

  3.希尔排序

    

 

 

    时间复杂度:O(n2)

    稳定性:不稳定

二、选择排序

  1.简单选择

    找到序列未排序部分的最大值,放到已排序部分的末尾,重复以上步骤直到未排序部分长度为1,简单粗暴。

    时间复杂度:O(n2)

    稳定性:不稳定

  2.堆排序

    将序列转化成完全二叉树,使树中所有非叶子端结点的值均不大于其孩子结点的值。

    时间复杂度:O(nlog2n)

    稳定性:不稳定

三、交换排序

  1.冒泡排序

    从第一个元素开始,该元素和后一个元素比较,若后者大则两者交换位置,结束后比较下一对元素,到第一趟完成后最后一个元素必定是最大的。剔除最后一个元素重复上述过程,一直到没有元素需要比较。

    时间复杂度:O(n2)

    稳定性:稳定

  2.快速排序

    在序列中选定一个基准值,将小于基准值的值放到序列左边,大于基准值的值放到序列右边,然后对左右两边递归。

    时间复杂度:O(nlog2n)

    稳定性:不稳定

四、归并排序

  

posted @ 2020-07-12 23:57  黄浚泓  阅读(148)  评论(0编辑  收藏  举报