冒泡排序由于比较简单和容易理解,往往会成为人们首先想到的排序算法。最基本的想法就是在一次里面比较两个数字,并且确保他们在移动到其他项目之前有一个正确的顺序。在每一关结束,有价值的 "排序" 到正确的位置,最终只留下其他项目排序。
Javascript 是一种由 Netscape 的 LiveScript 发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如 Perl,遗留的速度问题,为客户提供更流畅的浏览效果。
冒泡排序示例,双向冒泡排序与对双向冒泡排序稍微的改进的可视化效果。
代码很简单,不知道有木有未知 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];
- }//下一个
- }
- }
来源: http://www.phperz.com/article/17/0217/266367.html