基本排序算法(冒泡、选择、插入)的效率比较
来源:互联网 发布:sql server 进程死锁 编辑:程序博客网 时间:2024/05/18 10:05
一、比较思想
- 冒泡、选择、插入三种排序算法的复杂度非常相似,执行效率也差不多
- 要确定三种算法的性能差异,采用非正式的计时系统来比较对数据集合进行排序所花费的时间
- 计时系统基于JavaScript中的Date对象的getTime()函数取得系统时间。
var start = new Date().getTime();
getTime()函数获取的是系统时间,以毫秒为单位。
- 计时系统
var start = new Date().getTime();...var stop = new Date().getTime();var elapsed = stop - start; //执行时间
二、代码实现
- 准备一个包含n个随机整数的数组。即封装一个函数,为每个算法创建一个新的数据集合。
function setData(length){ var arr = new Array(length); for(var i = 0; i < length; i++) { arr[i] = length * Math.random(); } return arr;}
- 调用之前写好的三种排序算法
<script src="bubbleSort.js" charset="utf-8"></script> //冒泡<script src="insertSort.js" charset="utf-8"></script> //插入<script src="selectionSort.js" charset="utf-8"></script> //选择
- 比较函数的封装
function timeElapsed(length) { var arr = setData(length); var start = new Date().getTime(); bubbleSort(arr); var stop = new Date().getTime(); var elapsed = stop - start; document.write("对" + length + "个元素执行冒泡排序消耗时间为:" + elapsed + "毫秒<br />"); arr = setData(length); start = new Date().getTime(); selectionSort(arr); stop = new Date().getTime(); elapsed = stop - start; document.write("对" + length + "个元素执行选择排序消耗时间为:" + elapsed + "毫秒<br />") arr = setData(length); start = new Date().getTime(); insertSort(arr); stop = new Date().getTime(); elapsed = stop - start; document.write("对" + length + "个元素执行插入排序消耗时间为:" + elapsed + "毫秒<br />")}
- 数据测试
timeElapsed(100)timeElapsed(10000);
这里100数据太小。差异不显著,因此再比较一次10000的数据集合
阅读全文
0 0
- 基本排序算法(冒泡、选择、插入)的效率比较
- 选择,插入,交换,冒泡,希尔排序算法的效率比较
- 冒泡,选择,插入排序的效率比较
- 基本排序算法(冒泡、选择、插入)
- 基本排序算法(冒泡排序,选择排序,插入排序)
- 排序算法之一: 基本的选择,插入,冒泡排序
- 基本排序算法(选择、插入、冒泡)和希尔排序
- 选择 插入 快速 冒泡排序算法的比较
- 算法-基本排序:冒泡、选择、插入
- 三种基本的排序算法:选择,插入,冒泡
- 冒泡、选择、插入、归并、希尔、快速排序效率比较代码
- 冒泡、选择、插入、归并、希尔、快速排序效率比较代码 .
- 算法之基本排序(冒泡,选择,插入)
- JavaScript基本排序算法(冒泡、选择、插入)
- java实现最基本的几种排序算法(冒泡,选择,插入)
- 基本排序算法(选择,冒泡,一般插入,二分插入)源码
- 菜鸟学编程之三:三种最基本排序算法的实现(冒泡排序、选择排序、直接插入排序)
- 几种基本的排序算法:选择排序、插入排序、冒泡排序
- 尝试实现atoi和itoa
- 2017年总
- Android的震动与振铃
- Ajax异步开发学习笔记
- QML中展示json数据(从c++传递的值)
- 基本排序算法(冒泡、选择、插入)的效率比较
- c++模板
- php无限分类的删除
- JSON
- Python基础学习<二>
- MySQL定时执行脚本(计划任务)命令实例
- 【Apollo源码分析】系列的第三部分【prediction】
- java 快速幂取模算法
- 20170825考试总结