zoukankan      html  css  js  c++  java
  • 各种排序总结(总)

    排序法

    平均时间

    最差情形

    稳定度

    额外空间

    备注

    冒泡

    O(n2)

        O(n2)

    稳定

    O(1)

    n小时较好

    交换

    O(n2)

        O(n2)

    不稳定

    O(1)

    n小时较好

    选择

    O(n2)

    O(n2)

    不稳定

    O(1)

    n小时较好

    插入

    O(n2)

    O(n2)

    稳定

    O(1)

    大部分已排序时较好

    基数

    O(logRB)

    O(logRB)

    稳定

    O(n)

    B是真数(0-9),

    R是基数(个十百)

    Shell

    O(nlogn)

    O(ns) 1<s<2

    不稳定

    O(1)

    s是所选分组

    快速

    O(nlogn)

    O(n2)

    不稳定

    O(nlogn)

    n大时较好

    归并

    O(nlogn)

    O(nlogn)

    稳定

    O(n)

    n大时较好

    O(nlogn)

    O(nlogn)

    不稳定

    O(1)

    n大时较好

    1. 若n较小:直接选择或直接插入。此时如果记录本身信息量较大应选择直接选择排序,因为直接插入排序的移动记录次数比直接选择多很多。
    2. 若n较大,应选择时间为O(nlogn)的快排、归并或堆排序。快排时间依赖于数组原始情况,当原始数组较随机时时间短;归并不依赖与数组的原始情况,但是有空间代价为o(n)。
    3. 当原始数组基本有序时用直接插入或冒泡排序。
  • 相关阅读:
    Python笔记初识
    visio开发者图形分类个人爱好
    亿图图示与visio结合使用
    xmind visio mindmanager edraw比较
    Pycharm安装步骤
    win32com问题
    Win32.com安装
    Pycharm安装步骤
    Phython笔记初识
    跨域问题解决方案
  • 原文地址:https://www.cnblogs.com/CnZyy/p/3314710.html
Copyright © 2011-2022 走看看