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. 当原始数组基本有序时用直接插入或冒泡排序。
  • 相关阅读:
    jquery常用操作@测试分享
    selenium 上传文件
    python 安装mysql驱动
    创建react项目
    入栈操作的合法性 【重复元素】
    git笔记
    python GUI实战项目——tkinter库的简单实例
    Excel更改单元格格式后无效
    Find the Difference
    Two Sum IV
  • 原文地址:https://www.cnblogs.com/CnZyy/p/3314710.html
Copyright © 2011-2022 走看看