• 几种排序算法性能比较


    统计了几种排序算法的比较和交换次数,以普通冒泡排序比较次数为100,做了一下数据处理,结果如下:
    说明:
    1.行中第一个是比较次数,第二个是交换次数。
    2.第一行是全部随机,第二行是前70%有序,后30%无序。
    3.数据个数是1000个。
    1.普通冒泡。
    100 50
    100 28
    2.带标记的冒泡。
    100 50
    99 28
    3.鸡尾酒排序。
    67 50
    48 28
    4.奇偶排序
    98 50
    97 28
    5.梳子排序
    5 1
    5 1
    6.地精排序。
    101 50
    57 28
    7.快速排序。
    2 1
    2 1
    8.选择排序。
    100 0
    100 0
    9.插入排序
    51 25
    29 14
    10.shell排序 (gap= n/2^i)
    3 1
    3 1
    11.shell排序 (gap= 3*gap+1)
    3 1
    3 1


    结论:
    1.最快的当然是快速排序。
    2.选择排序交换较少。还是有交换的,那个0是因为次数太少,四舍五入得出的。
    3.最简单的插入排序也比冒泡排序好。
    4.2,3,4,6,都是冒泡排序衍生的,比较次数不同,但交换次数是一样的。
    5.shell排序的gap选择除2跟其他比较,在排序数据少时,差别不大。

  • 相关阅读:
    [算法] 带权图
    哥德巴赫猜想 ——— 极限算法(你要是能写出比我用时还短的代码算我输)
    详解 位运算
    内存对齐模式 —— 原理讲解
    C语言 文件操作
    指针与数组
    队列的实现
    堆栈的实现
    线性表 详讲及使用
    树莓派
  • 原文地址:https://www.cnblogs.com/riskyer/p/3348049.html
Copyright © 2020-2023  润新知