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 EasyUI中弹出确认对话框以及加载效果示例代码
Feb 13 Javascript
QQ空间顶部折页撕开效果示例代码
Jun 15 Javascript
node.js入门实例helloworld详解
Dec 23 Javascript
jQuery插件zTree实现更新根节点中第i个节点名称的方法示例
Mar 08 Javascript
javascript实现多张图片左右无缝滚动效果
Mar 22 Javascript
微信小程序实现瀑布流布局与无限加载的方法详解
May 12 Javascript
JS实现新建文件夹功能
Jun 17 Javascript
详解如何让InstantClick兼容MathJax、百度统计等
Sep 12 Javascript
Vue用v-for给src属性赋值的方法
Mar 03 Javascript
微信小程序实现基于三元运算验证手机号/姓名功能示例
Jan 19 Javascript
JS实现的雪花飘落特效示例
Dec 03 Javascript
javascript实现一款好看的秒表计时器
Sep 05 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通用防注入程序 推荐
2011/02/26 PHP
PHP过滤★等特殊符号的正则
2014/01/27 PHP
详解PHP的Yii框架中的Controller控制器
2016/03/29 PHP
详解PHP中的序列化、反序列化操作
2017/03/21 PHP
PHP编程计算两个时间段是否有交集的实现方法(不算边界重叠)
2017/05/30 PHP
妙用Jquery的val()方法
2012/06/27 Javascript
分享一个我自己写的ToolTip提示插件(附源码)
2013/01/20 Javascript
jQuery CSS()方法改变现有的CSS样式
2014/08/20 Javascript
jQuery中$.ajax()和$.getJson()同步处理详解
2015/08/12 Javascript
jQuery获取字符串中出现最多的数
2016/02/22 Javascript
JavaScript实现的XML与JSON互转功能详解
2017/02/16 Javascript
vue2.0实现分页组件的实例代码
2017/06/22 Javascript
解决vue数组中对象属性变化页面不渲染问题
2018/08/09 Javascript
Vue.js 中 axios 跨域访问错误问题及解决方法
2018/11/21 Javascript
详解Nuxt.js 实战集锦
2019/11/19 Javascript
微信小程序全选多选效果实现代码解析
2020/01/21 Javascript
vue中父子组件的参数传递和应用示例
2021/01/04 Vue.js
Python实现从脚本里运行scrapy的方法
2015/04/07 Python
浅谈numpy中linspace的用法 (等差数列创建函数)
2017/06/07 Python
Python编程实现粒子群算法(PSO)详解
2017/11/13 Python
Java实现的执行python脚本工具类示例【使用jython.jar】
2018/03/29 Python
python文件操作之批量修改文件后缀名的方法
2018/08/10 Python
详解python之heapq模块及排序操作
2019/04/04 Python
python执行scp命令拷贝文件及文件夹到远程主机的目录方法
2019/07/08 Python
python 6行代码制作月历生成器
2020/09/18 Python
Python实现异步IO的示例
2020/11/05 Python
当我正在为表建立索引的时候,SQL Server 会禁止对表的访问吗
2014/04/28 面试题
工程部主管岗位职责
2013/11/17 职场文书
投资合作协议书
2014/04/17 职场文书
微笑服务标语
2014/06/24 职场文书
交通志愿者活动总结
2014/06/27 职场文书
刑事辩护授权委托书范本
2014/10/17 职场文书
2014年设计师工作总结
2014/11/25 职场文书
销售经理岗位职责
2015/01/31 职场文书
钢铁是怎样炼成的读书笔记
2015/06/29 职场文书
Java中PriorityQueue实现最小堆和最大堆的用法
2021/06/27 Java/Android