西兰花伟大炮
注意,你这个不是冒泡排序,是选择排序哦,第一个for的i = 0是数组的第1个元素,而第二个for是用来表示从比i大1的位置开始循环。来把剩下的元素与i进行比较,当找到就进行交换,循环结束就让i加一,然后j仍然比i大一,第二个那里不是i,是len--;<script>
function bubbleSort(arr){
var len = arr.length,j;
while(len>0){
for (var j = 0;j < len - 1;j++) {
if(arr[j] > arr[j+1]){
var temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
len--;
}
return arr;
}
arr1 = [4,6,1,5,8,7,9,2];
console.log(bubbleSort(arr1))<script>
function bubbleSort(arr){
var len = arr.length;
for(var i = 0; i < len;i++ ){
for(var j = 0; j < len - i - 1;j++){
if(arr[j] > arr[j+1]){
var temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
return arr;
}
var array = [10,9,8,7,6,5,4,3,2,1];
console.log(bubbleSort(array));/*每一次外层循环把当前数列中最大值排到最后,
并减少数组长度,就不再遍历最后的最大,每内层循环一遍就会找出一个当前数列最大的值*/这才是冒泡排序