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 相关文章推荐
用Javscript实现表单复选框的全选功能
May 25 Javascript
javascript XML数据显示为HTML一例
Dec 23 Javascript
javascript 新浪背投广告实现代码
Jul 07 Javascript
IE8对JS通过属性和数组遍历解析不一样的地方探讨
May 06 Javascript
jQuery判断checkbox(复选框)是否被选中以及全选、反选实现代码
Feb 21 Javascript
一行命令搞定node.js 版本升级
Jul 20 Javascript
jQuery焦点控制图层展示延迟隐藏的方法
Mar 09 Javascript
bootstrap组件之导航组件使用方法
Jan 19 Javascript
JS简单获取当前年月日星期的方法示例
Feb 07 Javascript
Vue.js用法详解
Nov 13 Javascript
小程序二次贝塞尔曲线实现购物车商品曲线飞入效果
Jan 07 Javascript
vue实现按钮切换图片
Jan 20 Vue.js
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 convert_uudecode()函数讲解
2019/02/14 PHP
PHP crypt()函数的用法讲解
2019/02/15 PHP
PHP应用跨时区功能的实现方法
2019/03/21 PHP
javascript window对象属性整理
2009/10/24 Javascript
javascript学习(一)构建自己的JS库
2013/01/02 Javascript
浅谈JavaScript之事件绑定
2013/07/08 Javascript
js换图片效果可进行定时操作
2014/06/09 Javascript
jQuery 1.9移除了$.browser可以使用$.support来替代
2014/09/03 Javascript
让IE8浏览器支持function.bind()方法
2014/10/16 Javascript
javascript匿名函数实例分析
2014/11/18 Javascript
avalonjs实现仿微博的图片拖动特效
2015/05/06 Javascript
JS触摸屏网页版仿app弹窗型滚动列表选择器/日期选择器
2016/10/30 Javascript
Javascript数组中push方法用法分析
2016/10/31 Javascript
Bootstrap基本布局实现方法详解
2016/11/25 Javascript
一个非常好用的文字滚动的案例,鼠标悬浮可暂停[两种方案任选]
2016/12/01 Javascript
AngularJs中Bootstrap3 datetimepicker使用实例
2016/12/13 Javascript
jQuery中each方法的使用详解
2018/03/18 jQuery
js实现鼠标点击飘爱心效果
2020/08/19 Javascript
PHP webshell检查工具 python实现代码
2009/09/15 Python
python 第三方库的安装及pip的使用详解
2017/05/11 Python
[原创]Python入门教程1. 基本运算【四则运算、变量、math模块等】
2018/10/28 Python
pandas使用apply多列生成一列数据的实例
2018/11/28 Python
python通过实例讲解反射机制
2019/10/17 Python
Python中内建模块collections如何使用
2020/05/27 Python
详解Python+Selenium+ChromeDriver的配置和问题解决
2021/01/19 Python
使用CSS3中的calc()属性来以算式表达尺寸数值
2016/06/06 HTML / CSS
css3翻牌翻数字的示例代码
2020/02/07 HTML / CSS
Ticketmaster意大利:音乐会、节日、艺术和剧院的官方门票
2019/12/23 全球购物
abstract class和interface有什么区别
2013/08/04 面试题
4s客服专员岗位职责
2013/12/01 职场文书
消防应急演练方案
2014/02/12 职场文书
婚假请假条怎么写
2014/04/10 职场文书
生日宴会策划方案
2014/06/03 职场文书
幼儿园大班教师个人总结
2015/02/05 职场文书
利用Python判断你的密码难度等级
2021/06/02 Python
SONY AN-LP1 短波有源天线放大器图
2022/04/05 无线电