/** * Created by kaer on 2017/5/1. */function bubble(a){ var len = a.length; for(var i=0;i<len-1;i++){ for(var j = 0;j<len-i;j++){ if(a[j] > a[j+1]) { var tmp = a[j]; a[j]=a[j+1]; a[j+1] = tmp; } } } return a;}console.log(bubble([2,1,3,4,6,5]));//改進:設置一個標誌位,用於標識最後一次交換的位置function bubble1(a){ var len = a.length; var b =len-1; var pos = 0; for(var i=0;i<len-1;i++){ for(var j = 0;j<b;j++){ if(a[j] > a[j+1]) { var tmp = a[j]; a[j]=a[j+1]; a[j+1] = tmp; pos = j; } } b = pos; } return a;}console.log(bubble1([2,1,3,4,6,5]));//改進:一次排序同時找出最大值和最小值,查詢次數減小一半function bubble2(a){ var high = a.length -1; var low = 0; while(low < high){ for(var i=0;i<high;i++){ if(a[i]>a[i+1]){ var tmp = a[i]; a[i]=a[i+1]; a[i+1] = tmp; } } --high; for(var j=high;j>low;j--){ if(a[j]<a[j-1]){ var tmp = a[j]; a[j]=a[j-1]; a[j-1] = tmp; } } ++low; } return a;}console.log(bubble2([2,1,3,4,6,5]));