zoukankan      html  css  js  c++  java
  • 选择排序

    简单选择排序

      简单选择排序 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)

      稳定性:不稳定

      

  • 相关阅读:
    java-反射
    java-异常
    Jmeter-逻辑控制器
    Jmeter-断言
    java-函数传参
    怎么测试一个杯子
    java+selenium3-元素定位
    java+selenium3-简介及环境搭建
    微软企业库5.0 使用举例
    数据库连接字符串ConnectionString 中的关键字值释义
  • 原文地址:https://www.cnblogs.com/juanzhi/p/12784571.html
Copyright © 2011-2022 走看看