javascript冒泡排序小结


Posted in Javascript onApril 10, 2016

冒泡排序示例,双向冒泡排序与对双向冒泡排序稍微的改进的可视化效果。

代码很简单,不知道有木有未知bug。
大神请勿吐槽

冒泡排序示例

var ls=[ 98,13,6,25,38,36,30,44,38,80,61,28,47,34,95,18,85,58,89,85,42,61,74,35,13,14,80,7,10,44,10,47,13,11,52,25,24,48,34,12,88,80,33,8,80,45,64,52,79,77 ];
 
for(var i=0;i<ls.length;i++){
      for(var j=i+1;j<ls.length;j++){
        if(ls[i]>ls[j]){
          ls[i]=ls[i]+ls[j];
          ls[j]=ls[i]-ls[j];
          ls[i]=ls[i]-ls[j];
        } 
      }
    }

双向冒泡排序示例

var ls=[ 6,13,98,25,38,36,30,44,38,80,61,28,47,34,95,18,85,58,89,85,42,61,74,35,13,14,80,7,10,44,10,47,13,11,52,25,24,48,34,12,88,80,33,8,80,45,64,52,79,77 ];
 
for(var i=0;i<ls.length;i++){
      for(var j=i+1;j<ls.length-i;j++){
        if(ls[lent-1-i]<ls[lent-j]){
          ls[lent-1-i]=ls[lent-1-i]+ls[lent-j];
          ls[lent-j]=ls[lent-1-i]-ls[lent-j];
          ls[lent-1-i]=ls[lent-1-i]-ls[lent-j];
        }//后面的比较
        if(ls[i]>ls[j]){
          ls[i]=ls[i]+ls[j];
          ls[j]=ls[i]-ls[j];
          ls[i]=ls[i]-ls[j];
        }//前面的比较
      }
    }

双向冒泡排序稍微改进示例

var ls=[ 98,13,6,25,38,36,30,44,38,80,61,28,47,34,95,18,85,58,89,85,42,61,74,35,13,14,80,7,10,44,10,47,13,11,52,25,24,48,34,12,88,80,33,8,80,45,64,52,79,77 ];
 
var lent=ls.length;
for(var i=0;i<ls.length;i++){
      for(var j=i*2;j<ls.length-2*i;j++){
        if(ls[i*2]>ls[j+1]){
          ls[i*2]=ls[i*2]+ls[j+1];
          ls[j+1]=ls[i*2]-ls[j+1];
          ls[i*2]=ls[i*2]-ls[j+1];
        }//保持内层第一个数为循环最小
         
        if(ls[lent-i*2-1]<ls[lent-j-1]){
          ls[lent-i*2-1]=ls[lent-i*2-1]+ls[lent-j-1];
          ls[lent-j-1]=ls[lent-i*2-1]-ls[lent-j-1];
          ls[lent-i*2-1]=ls[lent-i*2-1]-ls[lent-j-1];
        }////保持内层倒数第一个数为循环最大
           
          if(ls[lent-2-i*2]<ls[lent-j-1]){
            ls[lent-2-i*2]=ls[lent-2-i*2]+ls[lent-j-1];
            ls[lent-j-1]=ls[lent-2-i*2]-ls[lent-j-1];
            ls[lent-2-i*2]=ls[lent-2-i*2]-ls[lent-j-1];
          }//倒数上一个
           
          if(ls[i*2+1]>ls[j+1]){
            ls[i*2+1]=ls[i*2+1]+ls[j+1];
            ls[j+1]=ls[i*2+1]-ls[j+1];
            ls[i*2+1]=ls[i*2+1]-ls[j+1];
          }//下一个
      }
}
Javascript 相关文章推荐
Extjs学习笔记之八 继承和事件基础
Jan 08 Javascript
JavaScript数据结构与算法之栈与队列
Jan 29 Javascript
Vue.js学习笔记之 helloworld
Aug 14 Javascript
将JSON字符串转换成Map对象的方法
Nov 30 Javascript
Bootstrap CSS组件之输入框组
Dec 17 Javascript
基于JavaScript实现滑动门效果
Mar 16 Javascript
canvas实现弧形可拖动进度条效果
May 11 Javascript
详解如何使用router-link对象方式传递参数?
May 02 Javascript
了解javascript中let和var及const关键字的区别
May 24 Javascript
bootstrap table.js动态填充单元格数据的多种方法
Jul 18 Javascript
vue项目实现图片上传功能
Dec 23 Javascript
原生js实现照片墙效果
Oct 13 Javascript
javascript原生ajax写法分享
Apr 10 #Javascript
Javascript实现苹果悬浮虚拟按钮
Apr 10 #Javascript
jQuery实现点击水纹波动动画
Apr 10 #Javascript
JavaScript数据绑定实现一个简单的 MVVM 库
Apr 08 #Javascript
jQuery使用Selectator插件实现多选下拉列表过滤框(附源码下载)
Apr 08 #Javascript
JavaScript代码实现左右上下自动晃动自动移动
Apr 08 #Javascript
JS表单验证的代码(常用)
Apr 08 #Javascript
You might like
在PHP中养成7个面向对象的好习惯
2010/01/28 PHP
DD_belatedPNG,IE6下PNG透明解决方案(国外)
2010/12/06 Javascript
JavaScript 学习历程和心得分享
2010/12/12 Javascript
JavaScript中的prototype和constructor简明总结
2014/04/05 Javascript
JavaScript link方法入门实例(给字符串加上超链接)
2014/10/17 Javascript
24款热门实用的jQuery插件推荐
2014/12/24 Javascript
javascript实现校验文件上传控件实例
2015/04/20 Javascript
JS右下角广告窗口代码(可收缩、展开及关闭)
2015/09/04 Javascript
深入理解jquery跨域请求方法
2016/05/18 Javascript
Jquery Easyui日历组件Calender使用详解(23)
2016/12/18 Javascript
JS实现iframe自适应高度的方法示例
2017/01/07 Javascript
利用vue+elementUI实现部分引入组件的方法详解
2017/11/22 Javascript
VUE-cli3使用 svg-sprite-loader
2018/10/20 Javascript
Node.js Buffer模块功能及常用方法实例分析
2019/01/05 Javascript
vue elementUI table表格数据 滚动懒加载的实现方法
2019/04/04 Javascript
JavaScript定时器设置、使用与倒计时案例详解
2019/07/08 Javascript
帮你彻底搞懂JS中的prototype、__proto__与constructor(图解)
2019/08/23 Javascript
vue表单验证之禁止input输入框输入空格
2020/12/03 Vue.js
Python中使用hashlib模块处理算法的教程
2015/04/28 Python
python中defaultdict的用法详解
2017/06/07 Python
利用标准库fractions模块让Python支持分数类型的方法详解
2017/08/11 Python
Python如何调用JS文件中的函数
2019/08/16 Python
python多进程并发demo实例解析
2019/12/13 Python
纯CSS3+DIV实现小三角形边框效果的示例代码
2020/08/03 HTML / CSS
利用HTML5中Geolocation获取地理位置调用Google Map API在Google Map上定位
2013/01/23 HTML / CSS
html5适合移动应用开发的12大特性
2014/03/19 HTML / CSS
欧洲最大的美妆零售网站:Feelunique
2017/01/14 全球购物
男女钓鱼靴和甲板鞋:XTRATUF
2021/01/09 全球购物
汉语专业应届生求职信
2013/10/01 职场文书
教师实习期自我鉴定
2013/10/06 职场文书
奶茶店创业计划书范文
2014/01/17 职场文书
员工晚婚的请假条
2014/02/08 职场文书
党员批评与自我批评范文
2014/09/23 职场文书
离婚协议书怎么写2014
2014/09/30 职场文书
党员干部学法用法心得体会
2016/01/21 职场文书
导游词之苏州阳澄湖
2019/11/15 职场文书