let arr = [2, 5, 1, 8, 19, 3, 32];
console.log('排序前: ', arr)
console.log('排序后: ', bubbleSort(arr));
console.log('排序后: ', selectSort(arr));
console.log('排序后: ', quickSort(arr));
function bubbleSort(arr) {
for (let i = 0; i < arr.length; i++) {
for (let j = i; j < arr.length; j++) {
if (arr[i] > arr[j]) {
let tmp = arr[j]
arr[j] = arr[i]
arr[i] = tmp
}
}
}
return arr;
}
function selectSort(arr) {
for (let i = 0; i < arr.length; i++) {
let minIdx = i
for (let j = i; j < arr.length; j++) {
if (arr[j] < arr[minIdx]) {
minIdx = j
}
}
[arr[i], arr[minIdx]] = [arr[minIdx], arr[i]]
}
return arr;
}
function quickSort(arr) {
if (arr.length <= 1) {
return arr;
}
let mid = Math.round(arr.length / 2);
let left = []
let right = []
for (let i = 0; i < arr.length; i++) {
if (i === mid) {
continue
}
if (arr[i] < arr[mid]) {
left.push(arr[i])
} else {
right.push(arr[i])
}
}
return quickSort(left).concat(arr[mid], quickSort(right))
}