zoukankan      html  css  js  c++  java
  • 白话简述:排序算法的稳定性 (什么样的排序是不稳定的)

    拿{ 6,2,4,6,1}举例。

    a[0] a[1] a[2] a[3] a[4]
    6 2 4 6 1

    有两个6,a[0]和a[3]。排序结果就有两种可能

    1 2 4 6 6
    原a[4] 原a[1] 原a[2] 原a[0] 原a[3]
    原a[4] 原a[1] 原a[2] 原a[3] 原a[0]

    如果排序结束后,a[0]可以保证一定在a[3]前头,也就是他们原有的顺序不变,那这种排序算法就是稳定的。(比如常见的冒泡排序、基数排序、插入排序、归并排序、桶排序、二叉树排序等都是稳定的排序算法

    反之,如果不能保证原有顺序,这种算法就是不稳定的。(比如常见的选择排序,希尔排序,堆排序,快速排序等都是不稳定的排序算法)

    要证明一种排序算法不稳定,举出一组例子就OK了;但要证明算法稳定,就要对算法设计进行彻底分析了。

  • 相关阅读:
    time模块
    Python进程模块
    Django面试题
    基本命令行语句
    scrapy中的配置与中间件
    JSON编码于解码对应dump于load
    python操作数据库
    Python里的方法
    正则表达式
    Python常用模块
  • 原文地址:https://www.cnblogs.com/hydor/p/3530593.html
Copyright © 2011-2022 走看看