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 相关文章推荐
js中判断控件是否存在
Aug 25 Javascript
jQuery Tools Dateinput使用介绍
Jul 14 Javascript
js select option对象小结
Dec 20 Javascript
Enter回车切换输入焦点实现思路与代码兼容各大浏览器
Sep 01 Javascript
JavaScript onkeypress事件入门实例(按下或按住一个键盘按键)
Oct 17 Javascript
Adapter适配器模式在JavaScript设计模式编程中的运用分析
May 18 Javascript
深入理解JavaScript中的对象复制(Object Clone)
May 18 Javascript
AngularJS中实现动画效果的方法
Jul 28 Javascript
获取select的value、text值的简单示例(jquery与javascript)
Dec 07 Javascript
浅谈对于“不用setInterval,用setTimeout”的理解
Aug 28 Javascript
node.js处理前端提交的GET请求
Aug 30 Javascript
javascript实现打砖块小游戏(附完整源码)
Sep 18 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 CURL获取邮箱地址的详解
2013/06/03 PHP
PHP中exec与system用法区别分析
2014/09/22 PHP
thinkPHP实现表单自动验证
2014/12/24 PHP
PHP之图片上传类实例代码(加了缩略图)
2016/06/30 PHP
php-app开发接口加密详解
2018/04/18 PHP
js loading加载效果实现代码
2009/11/24 Javascript
深入理解JavaScript系列(9) 根本没有“JSON对象”这回事!
2012/01/15 Javascript
js渐变显示渐变消失示例代码
2013/08/01 Javascript
javascript遍历控件实例详细解析
2014/01/10 Javascript
js简单设置与使用cookie的方法
2016/01/22 Javascript
原生js仿jquery实现对Ajax的封装
2016/10/04 Javascript
bootstrapValidator自定验证方法写法
2016/12/01 Javascript
JS简单判断函数是否存在的方法
2017/02/13 Javascript
JS实现隔行换色的表格排序
2017/03/27 Javascript
简单实现js进度条加载效果
2020/03/25 Javascript
实现div内部滚动条滚动到底部和顶部的代码
2017/11/15 Javascript
详解Vue-cli中的静态资源管理(src/assets和static/的区别)
2018/06/19 Javascript
微信小程序内拖动图片实现移动、放大、旋转的方法
2018/09/04 Javascript
JavaScript定时器常见用法实例分析
2019/11/15 Javascript
Openlayers学习之加载鹰眼控件
2020/09/28 Javascript
[03:24]DOTA2超级联赛专访hao 大翻盘就是逆袭
2013/05/24 DOTA
[56:20]LGD vs VP Supermajor 败者组决赛 BO3 第三场 6.10
2018/07/04 DOTA
Python中的字符串查找操作方法总结
2016/06/27 Python
Python复制Word内容并使用格式设字体与大小实例代码
2018/01/22 Python
python 将dicom图片转换成jpg图片的实例
2020/01/13 Python
通过python连接Linux命令行代码实例
2020/02/18 Python
官方授权图形T恤和服装:Fifth Sun
2019/06/12 全球购物
政治思想表现评语
2014/05/04 职场文书
社保委托书怎么写
2014/08/02 职场文书
青年标兵事迹材料
2014/08/16 职场文书
财务工作失误检讨书
2015/02/19 职场文书
《七月的天山》教学反思
2016/02/19 职场文书
《初涉尘世》读后感3篇
2020/01/10 职场文书
Django + Taro 前后端分离项目实现企业微信登录功能
2022/04/07 Python
vue router 动态路由清除方式
2022/05/25 Vue.js
Nginx如何配置多个服务域名解析共用80端口详解
2022/09/23 Servers