选择排序
思路: 1.从第一个开始,依次和后面所有做比较,找到最小值,
(需准备一个临时变量,准备存储最小值,初始值可以是第一位)
2.将最小值和第一个数据交换
// 0-1 0-2 0-3 0-4 0-5 min minIndex arr[minIndex]=arr[0] arr[0]=min
// 1-2 1-3 1-4 1-5 min minIndex arr[minIndex]=arr[1] arr[1]=min
// 2-3 2-4 2-5
// 3-4 3-5
// 4-5
var arr = [111,233,444,444,553,34,34,23,2,213,455,6,63,534]
for(var i=0;i<arr.length-1;i++){
var min = arr[i];
var minIndex = i;
for(var j=i+1;j<arr.length;j++){
if(min>arr[j]){
[min,minIndex] = [arr[j],j]
}
}
arr[minIndex]=arr[i]
arr[i]=min
}
console.log(arr,'--------------');
冒泡排序
思路:两两比较,大的放后面
/ 以下确定的是比较次数
// 初始:[5,4,3,2,1]
// 0-1 1-2 2-3 3-4
// 第一轮结束:[4,3,2,1,5]
// 0-1 1-2 2-3
// 第二轮结束:[3,2,1,4,5]
// 0-1 1-2
// 第三轮结束:[2,1,3,4,5]
// 0-1
// 第四轮结束:[1,2,3,4,5]
var arr3 = [11,23,4,5,64,66,7,67,41,23,13,4314,1332,34132,23,234,3,2,4]
for(var i=0;i<arr3.length-1;i++){j++
for(var j=0;j<arr3.length-i-1;j++){
if(arr3[j]>arr3[j+1]){
var ls = arr3[j]
arr3[j]=arr3[j+1]
arr3[j+1]=ls
}
}
}
console.log(arr3,'--------------');
实际场景应用
/实例:根据用户的id来排序
var arr2 = [{id:3,name:"张三"},{id:2,name:"李思"},{id:5,name:"王二"},{id:1,name:"赵五"}];
function fn(arr){
for(var i=0;i<arr.length-1;i++){j++
for(var j=0;j<arr.length-i-1;j++){
if(arr[j].id>arr[j+1].id){
var ls = arr[j]
arr[j]=arr[j+1]
arr[j+1]=ls
}
}
}
return arr
}
console.log(fn(arr2),'--------------');
//也可以使用选择排序
2020/11/14