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 相关文章推荐
3分钟写出来的Jquery版checkbox全选反选功能
Oct 23 Javascript
JavaScript判断文件上传类型的方法
Sep 02 Javascript
JavaScript中的Web worker多线程API研究
Dec 06 Javascript
JavaScript实现数组降维详解
Jan 05 Javascript
node+koa实现数据mock接口的方法
Sep 20 Javascript
vue-cli结合Element-ui基于cropper.js封装vue实现图片裁剪组件功能
Mar 01 Javascript
JavaScript求一个数组中重复出现次数最多的元素及其下标位置示例
Jul 23 Javascript
微信小程序实现笑脸评分功能
Nov 03 Javascript
BootStrap modal实现拖拽功能
Dec 01 Javascript
ES6入门教程之let、const的使用方法
Apr 13 Javascript
在vue-cli创建的项目中使用sass操作
Aug 10 Javascript
AngularJS实现多级下拉框
Mar 25 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实时显示输出
2008/10/02 PHP
php限制文件下载速度的代码
2015/10/20 PHP
php的4种常用运行方式详解
2016/12/22 PHP
完美解决php 导出excle的.csv格式的数据时乱码问题
2017/02/18 PHP
CakePHP框架Session设置方法分析
2017/02/23 PHP
一次失败的jQuery优化尝试小结
2011/02/06 Javascript
brook javascript框架介绍
2011/10/10 Javascript
javascript操作table(insertRow,deleteRow,insertCell,deleteCell方法详解)
2013/12/16 Javascript
js实现鼠标经过时图片滚动停止的方法
2015/02/16 Javascript
JavaScript函数学习总结以及相关的编程习惯指南
2015/11/16 Javascript
js中获取jsp表单中radio类型的值简单实例
2016/08/15 Javascript
jQuery特殊符号转义的实现
2016/11/30 Javascript
基于vue 实现token验证的实例代码
2017/12/14 Javascript
vue-auto-focus: 控制自动聚焦行为的 vue 指令方法
2018/08/25 Javascript
vue 详情跳转至列表页实现列表页缓存
2019/03/27 Javascript
vuex state中的数组变化监听实例
2019/11/06 Javascript
Vue的transition-group与Virtual Dom Diff算法的使用
2019/12/09 Javascript
python调用短信猫控件实现发短信功能实例
2014/07/04 Python
Python变量和字符串详解
2017/04/29 Python
python删除服务器文件代码示例
2018/02/09 Python
用Python实现筛选文件脚本的方法
2018/10/27 Python
python字符串和常用数据结构知识总结
2019/05/21 Python
Python中拆分字符串的操作方法
2019/07/23 Python
使用Python和OpenCV检测图像中的物体并将物体裁剪下来
2019/10/30 Python
python函数不定长参数使用方法解析
2019/12/14 Python
python深copy和浅copy区别对比解析
2019/12/26 Python
PyInstaller将Python文件打包为exe后如何反编译(破解源码)以及防止反编译
2020/04/15 Python
Python的logging模块基本用法
2020/12/24 Python
英国轻奢珠宝品牌:Astley Clarke
2016/12/18 全球购物
英国最大的体育&时尚零售公司:JD Sports
2017/12/13 全球购物
阿联酋网上花店:Ferns N Petals
2018/02/14 全球购物
曼城官方网上商店:Manchester City
2019/09/10 全球购物
美国在线购买内衣网站:HerRoom
2020/02/22 全球购物
仓库组长岗位职责
2014/01/29 职场文书
淘宝活动策划方案
2014/02/06 职场文书
win10+anaconda安装yolov5的方法及问题解决方案
2021/04/29 Python