JS中的冒泡排序法

/*JS中的冒泡排序法*/
var arr=[8,4,6,3,5,2,7,1];
//轮数从1开始,到<length轮结束
/*遍历第n轮的公式:i从0开始,到<length-n结束*/
for(var n=1;n<arr.length;n++){
  for(var i=0;i<arr.length-n;i++){
      //如果当前元素>下一个元素,就交换两元素位置
       arr[i]>arr[i+1]&&(//不允许声明第三个变量,交换两数
          //a+=b,b=a-b,a-=b
        arr[i]+=arr[i+1],
        arr[i+1]=arr[i]-arr[i+1],
        arr[i]-=arr[i+1]
     )
  }
}
console.log(arr);//[1,2,3,4,5,6,7,8]
var rArr=arr.reverse();
console.log(rArr);//[8,7,6,5,4,3,2,1]
<script>
 /*比较器函数作为回调函数的应用*/
 var arr=[3,12,4,23,123,2];
 //匿名函数回调
 arr.sort(function(a,b){
   return a-b;
 });
 console.log(String(arr));//2,3,4,12,23,123
 //比较器函数对象随局部变量一起释放!
 arr.sort(function(a,b){
   return b-a;
 });
 console.log(String(arr));//123,23,12,4,3,2
</script>

猜你喜欢

转载自go2here.iteye.com/blog/2284849
今日推荐