js交换排序 冒泡排序算法(Javascript版)


Posted in Javascript onOctober 04, 2014

比较相邻的元素。如果第一个比第二个大,就交换他们两个。
对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
针对所有的元素重复以上的步骤,除了最后一个。
持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

function sort(elements){
 for(var i=0;i<elements.length-1;i++){
  for(var j=0;j<elements.length-i-1;j++){
   if(elements[j]>elements[j+1]){
    var swap=elements[j];
    elements[j]=elements[j+1];
    elements[j+1]=swap;
   }
  }
 }
}

var elements = [3, 1, 5, 7, 2, 4, 9, 6, 10, 8];
console.log('before: ' + elements);
sort(elements);
console.log(' after: ' + elements);

效率:

时间复杂度:最好:O(n),最坏:O(n^2),平均:O(n^2)。

空间复杂度:O(1)。

稳定性:稳定。

Javascript 相关文章推荐
javascript中定义私有方法说明(private method)
Jan 27 Javascript
JavaScript支持的最大递归调用次数分析
Jun 24 Javascript
javascript数组克隆简单实现方法
Dec 16 Javascript
jQuery基本过滤选择器用法示例
Sep 09 Javascript
Mac下使用charles遇到的问题以及解决办法
Jan 10 Javascript
JavaScript实现选中文字提示新浪微博分享效果
Jun 15 Javascript
Vue组件的使用教程详解
Jan 05 Javascript
Vuex 快速入门(简单易懂)
Sep 20 Javascript
详解ECMAScript2019/ES10新属性
Dec 06 Javascript
JS实现判断移动端PC端功能
Feb 21 Javascript
如何在微信小程序中使用骨架屏的步骤
Jun 12 Javascript
js+html+css实现手动轮播和自动轮播
Dec 30 Javascript
Javascript获取当前时间函数和时间操作小结
Oct 01 #Javascript
js事件绑定快捷键以ctrl+k为例
Sep 30 #Javascript
显示今天的日期js代码(阳历和农历)
Sep 30 #Javascript
gridview生成时如何去掉style属性中的border-collapse
Sep 30 #Javascript
javascript学习笔记(四)function函数部分
Sep 30 #Javascript
javascript学习笔记(三)BOM和DOM详解
Sep 30 #Javascript
让人蛋疼的JavaScript语法特性
Sep 30 #Javascript
You might like
用PHP和ACCESS写聊天室(四)
2006/10/09 PHP
PHP中=赋值操作符对不同数据类型的不同行为
2011/01/02 PHP
Zend Studio (eclipse)使用速度优化方法
2011/03/23 PHP
20个2014年最优秀的PHP框架回顾
2014/10/22 PHP
php实现可逆加密的方法
2015/08/11 PHP
centos 7.2下搭建LNMP环境教程
2016/11/20 PHP
php基于环形链表解决约瑟夫环问题示例
2017/11/07 PHP
基于php中echo用逗号和用点号的区别详解
2018/01/23 PHP
JavaScript创建一个欢迎cookie弹出窗实现代码
2013/03/15 Javascript
window.opener用法和用途实例介绍
2013/08/19 Javascript
简单漂亮的js弹窗可自由拖拽且兼容大部分浏览器
2013/10/22 Javascript
基于javascript数组实现图片轮播
2016/05/02 Javascript
基于jQuery实现多标签页切换的效果(web前端开发)
2016/07/24 Javascript
jQuery Easyui Tabs扩展根据自定义属性打开页签
2016/08/15 Javascript
AngularJS控制器详解及示例代码
2016/08/16 Javascript
JavaScript使用forEach()与jQuery使用each遍历数组时return false 的区别
2016/08/26 Javascript
JS图片压缩(pc端和移动端都适用)
2017/01/12 Javascript
简述jQuery Easyui一些用法
2017/08/01 jQuery
js中事件对象和事件委托的介绍
2019/01/21 Javascript
深入理解使用Vue实现Context-Menu的思考与总结
2019/03/09 Javascript
改进 JavaScript 和 Rust 的互操作性并深入认识 wasm-bindgen 组件
2019/07/13 Javascript
layui加载数据显示loading加载完成loading消失的实例代码
2019/09/23 Javascript
关于Vue中axios的封装实例详解
2019/10/20 Javascript
Vue.js中使用Vuex实现组件数据共享案例
2020/07/31 Javascript
Python数据分析中Groupby用法之通过字典或Series进行分组的实例
2017/12/08 Python
Sanic框架流式传输操作示例
2018/07/18 Python
Python装饰器语法糖
2019/01/02 Python
为什么相对PHP黑python的更少
2020/06/21 Python
简单介绍HTML5中的文件导入
2015/05/08 HTML / CSS
Html5适配iphoneX刘海屏的简单实现
2019/04/09 HTML / CSS
阿玛尼美妆加拿大官方商城:Giorgio Armani Beauty加拿大
2017/10/24 全球购物
求职简历自荐信范文
2013/10/21 职场文书
小学五年级学生评语
2014/04/22 职场文书
球队口号
2014/06/18 职场文书
合伙开公司协议书范本
2014/10/28 职场文书
改造DE1103三步曲
2022/04/07 无线电