javascript冒泡排序小结

冒泡排序示例,双向冒泡排序与对双向冒泡排序稍微的改进的可视化效果

代码很简单,不知道有木有未知bug。 大神请勿吐槽

冒泡排序示例

rush:js;"> var ls=[ 98,13,6,25,38,36,30,44,80,61,28,47,34,95,18,85,58,89,42,74,35,14,7,10,11,52,24,48,12,88,33,8,45,64,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];
}
}
}

双向冒泡排序示例

rush:js;"> var ls=[ 6,98,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];
}//前面的比较
}
}

双向冒泡排序稍微改进示例

rush:js;"> var ls=[ 98,77 ];

var lent=ls.length;
for(var i=0;i<ls.length;i++){
for(var j=i2;j<ls.length-2i;j++){
if(ls[i2]>ls[j+1]){
ls[i
2]=ls[i2]+ls[j+1];
ls[j+1]=ls[i
2]-ls[j+1];
ls[i2]=ls[i2]-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];
    }////保持内层倒数第<a href="https://www.jb51.cc/tag/yige/" target="_blank" class="keywords">一个</a>数为循环最大

      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];
      }//下<a href="https://www.jb51.cc/tag/yige/" target="_blank" class="keywords">一个</a>
  }

}

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...