1.使用数组中的方法sort进行排序
var arr=[10,30,20,50,15];
arr.sort(function(a,b){
return a-b;
})
2.冒泡排序
1)冒泡排序实现逻辑
2)冒泡实现办法 两个循环
var arr=[16,8,134,25,1];
function bubbleSort(arr){
// 控制多少轮[每一轮都是把当最大值放在末尾]
for(var i=0;i<arr.length-1;i++){
var flag=false;//记录需不需要比较
// 控制每一轮比较多少次 【从数组第一项开始,两两比较】
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=true;
}
}
//优化项
if(!flag) break; //如果当前这一轮,两两比较了一圈,都没有发现需要交换位置的,说明现在的数组就是排好序了,则直接结束循环即可,没必要在比较了
}
return arr;
}
console.log(bubbleSort(arr));
var arr = [8, 16, 25, 34, 7, 134, 2, 1, 0];
function bubbleSort(arr) {
var flag = false;//看是否循环
//控制比较多少轮,每一轮都是把最大值放在末尾
for (var i = 0; i < arr.length - 1; i++) {
//控制每一轮比较多少次,从数组第一项开始,两两比较
for (var j = 0; j < arr.length - 1 - i; j++) {
var a=arr[j];//34
var b=arr[j + 1];//7
if (arr[j] > arr[j + 1]) {
arr[j]=arr[j]+arr[j+1];//41
arr[j + 1]=arr[j]-arr[j+1];
arr[j]=arr[j]-arr[j + 1];
flag = true;
}
}
//如果当前这一轮,两两比较了一圈,都没有发现需要交换位置的,说明现在的数组就是排好序的,则直接结束循环即可,没必要再比较了
if (!flag) break;
}
return arr;
}
console.log(bubbleSort(arr));
解构赋值
var ary = [100, 23, 5, 9, 33, 2]
for (var i = 0; i < ary.length - 1; i++) {
var n = true;
for (var j = 0; j < ary.length - 1 - i; j++) {
if (ary[j] > ary[j + 1]) {
[ary[j], ary[j + 1]] = [ary[j + 1], ary[j]];
n = false;
}
}
if (isNaN(n)) continue;
}
console.log(ary);