이번에는 간단한 버블과 양방향 버블소트 케이스를 들고 가겠습니다. 버블시퀀스 사용시 주의사항은 무엇인가요? , 다음은 실제 사례입니다. 살펴 보겠습니다.
버블 정렬 예, 양방향 버블 정렬 및 양방향 버블 정렬의 시각화가 약간 개선되었습니다.
버블 정렬 예
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 중국어 웹사이트의 다른 관련 기사도 주목해주세요!
관련 읽기:
웹페이지에 콘텐츠를 빠르게 저장하고 원하지 않는 요소를 제거하는 방법
위 내용은 간단한 버블 및 양방향 버블 정렬 사례의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!