zoukankan      html  css  js  c++  java
  • 排序二——交换排序

    冒泡排序

      从后往前(或者从前往后)两两比较,逆序则交换,每趟确定一个元素,且该元素下次不再交换。

      空间复杂度:交换元素的时候用的,O(1)

      时间复杂度:如果本趟元素没有发生交换,则说明已经有序。最好的情况下是 O(n),平均是 O(n2)。

      稳定性:稳定

    快速排序

      思想:分治,重点在分。取一个pivot,通过一趟排序分成两部分,每趟确定一个元素。

      时间:平均是 o(nlogn),最坏情况:基本有序。

      空间效率:快速排序是递归的,需要借助一个递归工作栈来保存每层递归调用的信息,平均O(log2N)

      时间复杂度:运行时间与划分是否对称有关。所以基本有序或者基本逆序,都是最好的情况。

      优化:1)头尾中间三个元素取中间

           2)规模较小时候,改用直接插入

      稳定性:不稳定。

  • 相关阅读:
    MacOS如何正确配置Idea自带Maven插件的环境变量?(亲测)
    通过Canvas实现画板
    插入排序
    选择排序
    冒泡排序法
    进制
    JDBC(宠物管理系统)
    银行ATM存取款机系统MySQL数据库
    高级查询(二)
    高级查询
  • 原文地址:https://www.cnblogs.com/juanzhi/p/12766825.html
Copyright © 2011-2022 走看看