冒泡排序
冒泡排序:类似冒泡一样,将最大数据或最小数据排到最右边(这里使最小数据排到最右边)。
假设有下面一组数据(采用极端):
1 2 3 4 5
第一趟排序(比较了4次,交换了4次):
2 1 3 4 5
2 3 1 4 5
2 3 4 1 5
2 3 4 5 1
第二趟排序(比较3次,交换3次;第4次不用比较,因为最后一个已经是最小的了):
3 2 4 5 1
3 4 2 5 1
3 4 5 2 1
第三趟排序(比较2次,交换2次)
4 3 5 2 1
4 5 3 2 1
第四次排序(比较一次,交换一次)
5 4 3 2 1
代码仅供参考:
var arr=[1,2,3,4,5];
for(var i=1;i<arr.length;i++){
for(var j=1;j<=arr.length-i;j++){ //交换完一回,意味着有一个数不用比了,已经将一个最小的数毛在了顶端,所以交换次数会不断减少。
if(arr[j-1]<arr[j]){ //第一回比较的次数肯定是:总个数-1=length-1,但是下面的arr[j-1]还带有效。
var temp=arr[j-1];
arr[j-1]=arr[j];
arr[j]=temp;
}
}
}
for(var i=0;i<arr.length;i++){
document.write(arr[i]+" ");
}