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 相关文章推荐
JQuery 常用方法和事件详细介绍
Apr 18 Javascript
jQuery列表拖动排列具体实现
Nov 04 Javascript
node.js [superAgent] 请求使用示例
Mar 13 Javascript
javascript实现图片延迟加载方法汇总(三种方法)
Aug 27 Javascript
jQuery多条件筛选如何实现
Nov 04 Javascript
JS实现字符串转驼峰格式的方法
Dec 16 Javascript
AngularJS报错$apply already in progress的解决方法分析
Jan 30 Javascript
js 实现省市区三级联动菜单效果
Feb 20 Javascript
JS实现直接运行html代码的方法
Mar 13 Javascript
jQuery实现购物车的总价计算和总价传值功能
Nov 28 jQuery
解决vue初始化项目时,一直卡在Project description上的问题
Oct 31 Javascript
Vue关于组件化开发知识点详解
May 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设计模式 php实现享元模式(flyweight)
2015/12/07 PHP
使用正则去除php代码中的注释方法
2016/11/03 PHP
phpmailer绑定邮箱的实现方法
2016/12/01 PHP
php ajax数据传输和响应方法
2018/08/21 PHP
php实现简易计算器
2020/08/28 PHP
jQuery实现动画效果的实例代码
2013/05/07 Javascript
eclipse导入jquery包后报错的解决方法
2014/02/17 Javascript
深入理解JavaScript系列(18):面向对象编程之ECMAScript实现
2015/03/05 Javascript
JavaScript控制listbox列表框的项目上下移动的方法
2015/03/18 Javascript
JavaScript中用sort()方法对数组元素进行排序的操作
2015/06/09 Javascript
angularJS与bootstrap结合实现动态加载弹出提示内容
2015/10/16 Javascript
jQueryUI DatePicker 添加时分秒
2016/06/04 Javascript
javascript显示倒计时控制按钮的简单实现
2016/06/07 Javascript
完美解决IE不支持Data.parse()的问题
2016/11/24 Javascript
bootstrap table实例详解
2017/01/06 Javascript
JavaScript获取中英文混合字符串长度的方法示例
2017/02/04 Javascript
vue + socket.io实现一个简易聊天室示例代码
2017/03/06 Javascript
基于JavaScript实现类名的添加与移除
2017/04/23 Javascript
VUE2.0+Element-UI+Echarts封装的组件实例
2018/03/02 Javascript
angularjs手动识别字符串中的换行符方法
2018/10/02 Javascript
解决layui调用自定义方法提示未定义的问题
2019/09/14 Javascript
vue监听滚动事件的方法
2020/12/21 Vue.js
[41:11]完美世界DOTA2联赛PWL S2 Inki vs Magma 第一场 11.22
2020/11/24 DOTA
pip 错误unused-command-line-argument-hard-error-in-future解决办法
2014/06/01 Python
pycharm 使用心得(四)显示行号
2014/06/05 Python
Python、Javascript中的闭包比较
2015/02/04 Python
Python数据结构之栈、队列的实现代码分享
2017/12/04 Python
完美解决安装完tensorflow后pip无法使用的问题
2018/06/11 Python
对Python中的条件判断、循环以及循环的终止方法详解
2019/02/08 Python
django的403/404/500错误自定义页面的配置方式
2020/05/21 Python
Fossil加拿大官网:化石手表、手袋、首饰及配饰
2019/04/23 全球购物
当当网软件测试笔试题
2015/11/24 面试题
服务明星事迹材料
2014/12/29 职场文书
2015年卫生监督工作总结
2015/05/21 职场文书
导游词之铁岭象牙山
2019/12/06 职场文书
2021-4-3课程——SQL Server查询【2】
2021/04/05 SQL Server