【原理】
前后两个数两两进行比较,如果符合交换条件,交换位置。直到所有数据排序完成,结束比较。
【注】 下述排序即为冒泡排序
思路:
第一轮
8 , 9 , 7 , 6 , 5 , 4
8 , 7 , 9 , 6 , 5 , 4
8 , 7 , 6 , 9 , 5 , 4
8 , 7 , 6 , 5 , 9 , 4
8 , 7 , 6 , 5 , 4 , 9
每一轮去除了一个最大的数,放在正确的位置
第二轮
7 , 8 , 6 , 5 , 4
7 , 6 , 8 , 5 , 4
7 , 6 , 5 , 8 , 4
7 , 6 , 5 , 4 , 8
第三轮
6 , 7 , 5 , 4
6 , 5 , 7 , 4
6 , 5 , 4 , 7
第四轮
5 , 6 , 4
5 , 4 , 6
第五轮
4 , 5
【代码】:
var arr = [9 , 8 , 7 , 6 , 5 , 4];
for(var i = 0 ; i < arr.length; i++) //比较的轮次
//每一轮比较的次数
}
for(var j = 0; j < arr.length - i - 1; j++)
//每一次都是从0开始的,所以要再减1
{ //判断前后两个数是否符合交换条件
if(arr[j] > arr[j + 1]){
var tmp = arr[j + 1];
arr[j + 1] = arr[j];
arr[j] = tmp;
}
}
alert(arr); //9,8,7,6,5,4,3,2,1