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 相关文章推荐
理解Javascript_01_理解内存分配原理分析
Oct 11 Javascript
jQuery代码优化 事件委托篇
Nov 01 Javascript
同时使用n个window onload加载实例介绍
Apr 25 Javascript
禁止iframe页面的所有js脚本如alert及弹出窗口等
Sep 03 Javascript
深入理解JQuery中的事件与动画
May 18 Javascript
JS不完全国际化&amp;本地化手册 之 理论篇
Sep 27 Javascript
原生js编写焦点图效果
Dec 08 Javascript
javascript实现延时显示提示框效果
Jun 01 Javascript
JavaScript数据结构之栈实例用法
Jan 18 Javascript
微信小程序结合Storage实现搜索历史效果
May 18 Javascript
javascript实现移动端轮播图
Dec 09 Javascript
在JavaScript中查找字符串中最长单词的三种方法(推荐)
Jan 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
解析centos中Apache、php、mysql 默认安装路径
2013/06/25 PHP
php数据类型判断函数有哪些
2013/09/23 PHP
linux下实现定时执行php脚本
2015/02/13 PHP
PHP创建多级目录的两种方法
2016/10/28 PHP
PHP面向对象中new self()与 new static()的区别浅析
2017/08/17 PHP
PHP getID3类的使用方法学习笔记【附getID3源码下载】
2019/10/18 PHP
PHP连接MySQL数据库三种实现方法
2020/12/10 PHP
基于Web标准的UI组件 — 树状菜单(2)
2006/09/18 Javascript
简略的前端架构心得&amp;&amp;基于editor为例子的编码小技巧
2010/11/25 Javascript
Jquery知识点一 Jquery的ready和Dom的onload的区别
2011/01/15 Javascript
js 浏览本地文件夹系统示例代码
2013/10/24 Javascript
javascript简单比较日期大小的方法
2016/01/05 Javascript
Bootstrap实现基于carousel.js框架的轮播图效果
2017/05/02 Javascript
详解用node.js实现简单的反向代理
2017/06/26 Javascript
Vue 父子组件数据传递的四种方式( inheritAttrs + $attrs + $listeners)
2018/05/04 Javascript
JS实现textarea通过换行或者回车把多行数字分割成数组并且去掉数组中空的值
2018/10/29 Javascript
jquery拖拽自动排序插件使用方法详解
2020/07/20 jQuery
Vue和React组件之间的传值方式详解
2019/01/31 Javascript
vuex实现及简略解析(小结)
2019/03/01 Javascript
JS去除字符串最后的逗号实例分析【四种方法】
2019/06/20 Javascript
深入理解Vue keep-alive及实践总结
2019/08/21 Javascript
[04:03][TI9趣味短片] 小鸽子茶话会
2019/08/20 DOTA
简述Python中的面向对象编程的概念
2015/04/27 Python
python如何为创建大量实例节省内存
2018/03/20 Python
flask框架url与重定向操作实例详解
2020/01/25 Python
Html5移动端弹幕动画实现示例代码
2018/08/27 HTML / CSS
丝芙兰加拿大官方网站:SEPHORA加拿大
2018/11/20 全球购物
中国跨镜手机配件批发在线商店:TVC-Mall
2019/08/20 全球购物
iostream与iostream.h的区别
2015/01/16 面试题
医院院务公开实施方案
2014/05/03 职场文书
个性婚礼策划方案
2014/05/17 职场文书
自主招生推荐信怎么写
2015/03/26 职场文书
关于迟到的检讨书
2015/05/06 职场文书
旅游投诉信范文
2015/07/02 职场文书
2016幼儿园毕业感言
2015/12/08 职场文书
导游词之岳阳楼
2019/09/25 职场文书