var arr = [2, 3, 4, 1, 6, 5];
//快速排序
function quickSort(arr, left = 0, right = arr.length - 1) {
if (left >= right) {
return;
}
var i = left;
var j = right;
var baseNum = arr[j];
while (i < j) {
while (i < j && arr[i] < baseNum) {
i++;
}
arr[j] = arr[i];
while (j > i && arr[j] >= baseNum) {
j--;
}
arr[i] = arr[j];
}
arr[j] = baseNum;
quickSort(arr, left, j - 1);
quickSort(arr, j + 1, right);
return arr;
}
// 插入排序
function insertSort(array) {
for (let i = 1; i < array.length; i++) {
let target = i;
for (let j = i - 1; j >= 0; j--) {
if (array[target] < array[j]) {
[array[target], array[j]] = [array[j], array[target]]
target = j;
} else {
break;
}
}
}
return array;
}
//归并排序
function mergeSort(array, left = 0, right = array.length - 1) {
if (left < right) {
let mid = Math.floor((left + right) / 2);
mergeSort(array, left, mid);
mergeSort(array, mid + 1, right);
merge(array, left, right);
}
return array;
}
function merge(array, left, right) {
let temp = [];
let mid = Math.floor((left + right) / 2);
let leftIndex = left;
let rightIndex = mid + 1;
let tempIndex = 0;
while (leftIndex <= mid && rightIndex <= right) {
if (array[leftIndex] < array[rightIndex]) {
temp[tempIndex++] = array[leftIndex++]
} else {
temp[tempIndex++] = array[rightIndex++]
}
}
while (leftIndex <= mid) {
temp[tempIndex++] = array[leftIndex++]
}
while (rightIndex <= right) {
temp[tempIndex++] = array[rightIndex++]
}
tempIndex = 0;
for (let i = left; i <= right; i++) {
array[i] = temp[tempIndex++]
}
}
//冒泡
function bubbleSort(array) {
for (let i = 0; i < array.length; i++) {
let flag = true;
for (let j = 0; j < array.length - 1 - i; j++) {
if (array[j] > array[j + 1]) {
[array[j + 1], array[j]] = [array[j], array[j + 1]]
flag = false;
}
}
if (flag) {
break;
}
console.log("array", array)
}
return array;
}
//选择排序
function selectionSort(array) {
for (let i = 0; i < array.length; i++) {
let minIndex = i;
for (let j = i + 1; j < array.length; j++) {
if (array[j] < array[minIndex]) {
minIndex = j;
}
}
[array[minIndex], array[i]] = [array[i], array[minIndex]]
}
return array;
}
console.log(quickSort(arr))