冒泡、选择、插入、归并、快速、堆排序效率测试
来源:互联网 发布:centos 编译php7 编辑:程序博客网 时间:2024/05/19 00:49
总结:
- 冒泡、插入、归并都是稳定排序。
- 冒泡、选择、插入时间复杂度平均O(n^2)。
- 堆排、归并、快速时间复杂度平均O(nlogn)。
1.1、测试结果:
冒泡、选择、插入、归并、快速、堆排序同时测试情况:
Text Len : 1(KB)Loop times : 512 Bubble Select Insert Merge Quick HeapTIME 0.00168 0.00121 0.00066 0.00012 0.00006 0.00008Text Len : 5(KB)Loop times : 512 Bubble Select Insert Merge Quick HeapTIME 0.04672 0.03027 0.01648 0.00064 0.00025 0.00051Text Len : 10(KB)Loop times : 512 Bubble Select Insert Merge Quick HeapTIME 0.22437 0.12041 0.06686 0.00117 0.00063 0.00098Text Len : 20(KB)Loop times : 512 Bubble Select Insert Merge Quick HeapTIME 0.98561 0.48256 0.26738 0.00270 0.00125 0.00256
1.2、测试总结:
- 1KB数据时,快速排序比冒泡排序效率快28倍。
- 20KB数据时,快速排序比冒泡排序效率快788倍。
- 平均效率从高到低排列:快排>堆排>归并>插入>选择>冒泡。
- 快速排序、堆排序、归并排序效率差不多。
2.1、测试结果:
归并、快速、堆排序同时测试情况:
Text Len : 1(KB)Loop times : 512 Merge Quick HeapTIME 0.00012 0.00004 0.00014Text Len : 10(KB)Loop times : 512 Merge Quick HeapTIME 0.00133 0.00057 0.00105Text Len : 100(KB)Loop times : 512 Merge Quick HeapTIME 0.01533 0.00619 0.01186Text Len : 1(MB)Loop times : 512 Merge Quick HeapTIME 0.18219 0.07221 0.13699Text Len : 10(MB)Loop times : 512 Merge Quick HeapTIME 2.01551 0.81578 1.54770Text Len : 100(MB)Loop times : 512 Merge Quick HeapTIME 23.13582 9.02357 16.99146Text Len : 10(MB)Loop times : 512 Merge Quick HeapTIME 2.00828 0.81469 1.54682
2.2、测试总结:
1、10M数据排序时,快排平均效率>堆排>归并排序。
0 0
- 冒泡、选择、插入、归并、快速、堆排序效率测试
- c排序算法:选择、冒泡、插入、快速、归并、堆排序
- 六种排序 冒泡 选择 插入 归并 快速 堆排序
- 冒泡、选择、插入、归并、希尔、快速排序效率比较代码
- 冒泡、选择、插入、归并、希尔、快速排序效率比较代码 .
- 数组排序(插入、选择、希尔、堆、归并、快速、冒泡)
- C 各种排序(选择/冒泡/快速/插入/希尔/归并/堆)
- 直接插入、冒泡、快速、简单选择、堆、归并排序算法
- 排序——冒泡、归并、快速、选择、插入、堆
- 直接插入、冒泡、快速、简单选择、堆、归并排序算法
- 插入排序、冒泡排序、选择排序、Shell排序、快速排序、归并排序、堆排序
- C# 插入排序 冒泡排序 选择排序 快速排序 堆排序 归并排序 基数排序 希尔排序
- 冒泡排序 快速排序 选择排序 堆排序 直接插入排序 希尔排序 归并排序
- 冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序java实现
- 插入排序、希尔排序、冒泡排序、快速排序、选择排序、堆排序、归并排序
- 冒泡排序,插入排序,快速排序,归并排序,堆排序,选择排序,希尔排序
- 插入排序、冒泡排序、选择排序、快速排序、堆排序、归并排序算法比较
- 冒泡排序,选择排序,插入排序,堆排序,归并排序,快速排序
- java中判断字符串是否为数字的方法的几种方法
- 学习mybatis
- 9Patch png format
- 深入理解C++的动态绑定和静态绑定
- mysql ON DUPLICATE KEY UPDATE
- 冒泡、选择、插入、归并、快速、堆排序效率测试
- 算法入门经典第二版第10章uva1635
- 用链栈实现任意进制的转化
- 原生js学习笔记
- RFC相关设置及使用
- 类加载器
- DELPHI Webbrowser 响应回车键(EWB响应正常,无需额外代码)
- 关于 Java 中 finally 语句块的深度辨析
- final关键字