使用js实现冒泡排序,并优化。
2018-11-30 20:53
369 查看
原始版,无忧化
function bubbleSort(ary) { var l = ary.length for(var i = 0; i < l; i++) { for(var j = 0; j < l; j++) { if(ary[j] > ary[j + 1]) { var tmp = ary[j] ary[j] = ary[j + 1] ary[j+1] = tmp } } } return ary }
优化一:内层循环次数递减
function bubbleSort(ary) { var l = ary.length for(var i = 0; i < l; i++) { for(var j = 0; j < l - i - 1; j++) { if(ary[j] > ary[j + 1]) { var tmp = ary[j] ary[j] = ary[j + 1] ary[j+1] = tmp } } } return ary }
优化二:监控内层是否发生过交换,如过某次内层没有发生过交换直接返回。
function bubbleSort(ary) { var l = ary.length for(var i = l - 1; i >= 1; i--) { var swaped = false //监控内层交换 for(var j = 0; j < i; j++) { if(ary[j] > ary[j + 1]) { var tmp = ary[j] ary[j] = ary[j + 1] ary[j + 1] = tmp swaped = true } } } if(!swaped) { return ary } }
相关文章推荐
- JS使用sort方法实现冒泡排序和乱序
- js实现冒泡排序,快速排序,插入排序及原生sort的使用
- js实现冒泡排序及优化
- 使用临界段原理实现优化的进程间同步对象-原理和实现
- 有关打印、收藏等的JS代码(打印等主要使用了一个IE组件来实现)
- jsData 使用教程(三) 实现增删改功能
- 快速上手,使用 JS 配合XML-RPC(JSP)实现AJAX类型应用
- 使用Altas的pageMethods对象实现JS与服务器端代码交互
- 使用临界段实现优化的进程间同步对象-原理和实现 (转)
- ASP.NET使用第三方库实现js图表
- 使用CSS/JS实现表格圆角
- 使用JQuery.js实现全选和反选
- 使用js实现滑动页面效果,很漂亮
- 纯js实现俄罗斯方块[效率待优化]
- 数据结构复习笔记:使用PHP实现内排序之冒泡排序和简单选择排序
- 使用jquery来实现JS的类面向对象
- 使用 Cufon 渲染网页字体(转载自ibm developerwork,在网页里引入特殊字体的方法,通过js实现字体渲染)(1)
- 使用JS实现在客户端判断上传文件大小
- 学习笔记---使用prototype.js扩展struts标签实现xmlhttprequest
- 使用js实现广告切换