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 相关文章推荐
node.js中的fs.fchown方法使用说明
Dec 16 Javascript
JavaScript中扩展Array contains方法实例
Aug 23 Javascript
学习JavaScript编程语言的8张思维导图分享
Mar 27 Javascript
基于replaceChild制作简单的吞噬特效
Sep 21 Javascript
jQuery插件实现带圆点的焦点图片轮播切换
Jan 18 Javascript
JavaScript的ExtJS框架中表格的编写教程
May 21 Javascript
关于网页中的无缝滚动的js代码
Jun 09 Javascript
window.close(); 关闭浏览器窗口js代码的总结介绍
Jul 14 Javascript
Vue.js快速入门教程
Sep 07 Javascript
JS基于正则截取替换特定字符之间字符串操作示例
Feb 03 Javascript
JS禁止浏览器右键查看元素或按F12审查元素自动关闭页面示例代码
Sep 07 Javascript
详解Vue中CSS样式穿透问题
Sep 12 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
解析ajax事件的调用顺序
2013/06/17 PHP
Apache服务器下防止图片盗链的办法
2015/07/06 PHP
微信公众号开发之文本消息自动回复php代码
2016/08/08 PHP
php中钩子(hook)的原理与简单应用demo示例
2019/09/03 PHP
PHP单元测试配置与使用方法详解
2019/12/27 PHP
swoole锁的机制代码实例讲解
2021/03/04 PHP
JavaScipt中的Math.ceil() 、Math.floor() 、Math.round() 三个函数的理解
2010/04/29 Javascript
Jquery 改变radio/checkbox选中状态,获取选中的值(示例代码)
2013/12/12 Javascript
给easyui的datebox控件添加清空按钮的实现方法
2016/11/09 Javascript
树结构之JavaScript
2017/01/24 Javascript
jQuery操作css样式
2017/05/15 jQuery
node实现定时发送邮件的示例代码
2017/08/26 Javascript
JS实现简单的选择题测评系统代码思路详解(demo)
2017/09/03 Javascript
echarts饼图扇区添加点击事件的实例
2017/10/16 Javascript
超出JavaScript安全整数限制的数字计算BigInt详解
2018/06/24 Javascript
微信小程序之多列表的显示和隐藏功能【附源码】
2018/08/06 Javascript
vue中的ref和$refs的使用
2018/11/22 Javascript
JS中使用new Option()实现时间联动效果
2018/12/10 Javascript
layui使用label标签的方法
2019/09/14 Javascript
js实现抽奖功能
2020/11/24 Javascript
将Python中的数据存储到系统本地的简单方法
2015/04/11 Python
利用python3随机生成中文字符的实现方法
2017/11/24 Python
Python实现的凯撒密码算法示例
2018/04/12 Python
Python常见数据类型转换操作示例
2019/05/08 Python
安装好Pycharm后如何配置Python解释器简易教程
2019/06/28 Python
检测python爬虫时是否代理ip伪装成功的方法
2019/07/12 Python
Python3创建Django项目的几种方法(3种)
2020/06/03 Python
详解如何在pyqt中通过OpenCV实现对窗口的透视变换
2020/09/20 Python
Python图像识别+KNN求解数独的实现
2020/11/13 Python
3D动画《斗罗大陆》上线当日播放过亿
2021/03/16 国漫
瑞典快乐袜子:Happy Socks
2018/02/16 全球购物
应届大学生自荐信
2013/12/05 职场文书
公务员试用期满考核材料
2014/05/22 职场文书
2017年寒假少先队活动总结
2016/04/06 职场文书
Ajax异步刷新功能及简单案例
2021/11/20 Javascript
Java结构型设计模式之组合模式详解
2022/09/23 Java/Android