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 相关文章推荐
[IE&amp;FireFox兼容]JS对select操作
Jan 07 Javascript
理清apply(),call()的区别和关系
Aug 14 Javascript
JavaScript中string转换成number介绍
Dec 31 Javascript
Javascript中匿名函数的调用与写法实例详解(多种)
Jan 26 Javascript
Bootstrap Paginator分页插件与ajax相结合实现动态无刷新分页效果
May 27 Javascript
判断横屏竖屏(三种)
Feb 13 Javascript
原生JS实现幻灯片
Feb 22 Javascript
利用Jasmine对Angular进行单元测试的方法详解
Jun 12 Javascript
实现两个文本框同时输入的实例
Sep 25 Javascript
vue-cli 2.*中导入公共less文件的方法步骤
Nov 22 Javascript
vue+echarts实现动态折线图的方法与注意
Sep 01 Javascript
JS前端监控采集用户行为的N种姿势
Jul 23 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/07/02 PHP
php从字符串创建函数的方法
2015/03/16 PHP
PHP记录搜索引擎蜘蛛访问网站足迹的方法
2015/04/15 PHP
PHP 多进程与信号中断实现多任务常驻内存管理实例方法
2019/10/04 PHP
php设计模式之状态模式实例分析【星际争霸游戏案例】
2020/03/26 PHP
PHP7 弃用功能
2021/03/09 PHP
Aster vs KG BO3 第三场2.18
2021/03/10 DOTA
js checkbox(复选框) 使用集锦
2009/04/28 Javascript
Jquery动态添加及删除页面节点元素示例代码
2014/06/16 Javascript
JavaScript隐式类型转换
2016/03/15 Javascript
javascript单页面手势滑屏切换原理详解
2016/03/21 Javascript
详解jQuery的Cookie插件
2016/11/23 Javascript
Vue引入jquery实现平滑滚动到指定位置
2018/05/09 jQuery
深入浅析Vue全局组件与局部组件的区别
2018/06/15 Javascript
vue轻量级框架无法获取到vue对象解决方法
2019/05/12 Javascript
layui清除radio的选中状态实例
2019/11/14 Javascript
js+canvas实现转盘效果(两个版本)
2020/09/13 Javascript
使用Vant完成Dialog弹框案例
2020/11/11 Javascript
vue 动态生成拓扑图的示例
2021/01/03 Vue.js
[00:36]DOTA2勇士令状莱恩声望物品——冥晶之厄展示
2018/05/25 DOTA
Python入门_学会创建并调用函数的方法
2017/05/16 Python
Python列表list解析操作示例【整数操作、字符操作、矩阵操作】
2017/07/25 Python
Python探索之URL Dispatcher实例详解
2017/10/28 Python
python读取各种文件数据方法解析
2018/12/29 Python
8段用于数据清洗Python代码(小结)
2019/10/31 Python
PyTorch中topk函数的用法详解
2020/01/02 Python
html5启动原生APP总结
2020/07/03 HTML / CSS
英国灯具和灯泡网上商店:Lights.co.uk
2018/02/02 全球购物
Martinelli官方商店:西班牙皮鞋和高跟鞋品牌
2019/07/30 全球购物
设计师个人求职信范文
2014/02/02 职场文书
网页美工求职信
2014/02/15 职场文书
大学生自我鉴定书
2014/03/24 职场文书
四风问题查摆剖析材料
2014/10/11 职场文书
初中生300字旷课检讨书
2014/11/19 职场文书
高中生个性发展自我评价
2015/03/09 职场文书
CSS3实现模糊背景的三种效果示例
2021/03/30 HTML / CSS