Rumah  >  Artikel  >  hujung hadapan web  >  简单的冒泡以及双向冒泡排序案列

简单的冒泡以及双向冒泡排序案列

php中世界最好的语言
php中世界最好的语言asal
2018-03-08 13:44:381946semak imbas

这次给大家带来简单的冒泡以及双向冒泡排序案列,使用冒泡序列有哪些注意事项?,下面就是实战案例,一起来看一下。

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

冒泡排序示例 

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];
                    }//下一个
            }
}

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

相关阅读:

怎样快速保存网页中的内容并且除去不想要的元素

 简易的图片点击上传功能

Atas ialah kandungan terperinci 简单的冒泡以及双向冒泡排序案列. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn