let arr = [1,235,56,84,2,6]
function quick(arr){
if(arr.length<=1) return arr
//获取数组中间的一个值,做为基数
let pivot = arr.splice(Math.floor(arr.length/2), 1)[0]
let left = [], right = [];
//当前的值小于基数则push到left数组否则push到right数组
arr.forEach(item => {
item<pivot ? left.push(item) : right.push(item)
});
return [...quick(left), pivot , ...quick(right)] //递归
}
console.log(quick(arr)) //[1, 2, 6, 56, 84, 235]
冒泡排序
比较相邻的两个元素,如果前一个比后一个大,则交换位置。
let arr = [1,22,33,4,6,25]
function sort(arr){
for(const a in arr){
for(const b in arr){
if(arr[a]<arr[b]){
const result = arr[a]
arr[a] = arr[b]
arr[b] = result
}
}
}
return arr
}
console.log(sort(arr)) //[1, 4, 6, 22, 25, 33]