demo 演示
冒泡排序
var arr = [9,10,5,78,99,34];
for(var i = 0 ; i < arr.length-1; i++){ //外层循环控制比较的轮数
for(var j = 0 ; j < arr.length-1-i; j++){
//比较的2个数的下标 j j+1
if(arr[j] > arr[j+1]){
var temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
console.log(arr);
冒泡排序的优化代码
//优化代码
var arr = [5,9,10,78,99,90];
var count= 0; //声明一个变量,用来记录比较的轮数。
for(var i = 0 ; i < arr.length-1; i++){ //外层循环控制比较的轮数
//假设在这一轮的时候,已经排好序了。
var flag = true;
for(var j = 0 ; j < arr.length-1-i; j++){
if(arr[j] > arr[j+1]){
var temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
flag = false; //假设失败
}
}
//如果到了这里,flag的值还是true,说明假设成功。
if(flag == true){
break;
}
count++;
}
console.log(arr);
console.log(count);
选择排序
var arr = [9,10,5,78,99,34];
for(var i= 0;i<arr.length-1;i++){
for(var j=i+1;j<arr.length;j++){
if(arr[j] > arr[i]){
var temp = arr[j];
arr[j] = arr[i];
arr[i] = temp;
}
}
}
console.log(arr);
还可以用数组的sort(func)方法