1.冒泡排序
var arr = [1,32,56,7,9,23,6,99,13,91,5]
for(var i=0;i<arr.length;i++){
for(var j = 0;j<arr.length-1-i;j++){
if(arr[j]>arr[j+1]){
let temp = arr[j]
arr[j] = arr[j+1]
arr[j+1] = temp
}
}
}
console.log(arr)
2.选择排序
// 选择排序
for(var i=0;i<arr.length;i++){
for(var j=i+1;j<arr.length;j++){
if(arr[i]>arr[j]){
let temp = arr[i]
arr[i] = arr[j]
arr[j] = temp
}
}
}
console.log(arr)
3.快速排序
//快速排序
function quickSort(arr){
if(arr.length<=1){return arr}
let middle = Math.floor(arr.length/2)
let middleArr = arr.splice(middle,1)[0]
console.log(middleArr) //13
let leftArr = []
let rightArr = []
for(var i=0;i<arr.length;i++){
if(arr[i]<middleArr){
leftArr.push(arr[i])
}
if(arr[i]>middleArr){
rightArr.push(arr[i])
}
}
return quickSort(leftArr).concat(middleArr,quickSort(rightArr))
}
console.log(quickSort(arr))
//选取一个基数(默认选择数组长度的平均数左右的数字作为标准——>
//循环玄幻数组,判断数组元素与这个基数的大小,小的存入左边的数组,大的存入右边的数组——>
//将新存的数组递归这个算法——>通过concat拼接数组返回)
Es6 sort()方法
//sort
arr = arr.sort((a,b)=>{
return a-b
})
console.log(arr)
决定了排序的顺序到底是升序还是降序主要是由a-b的前后位置来决定的