排序算法(冒泡排序、选择排序、插入排序、快速排序、归并排序)
代码示例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
function maopao(arr) {
for (var i = 0; i < arr.length; i++) {
for (var j = 0; j < arr.length - 1; j++) {
if (arr[j] > arr[j + 1]) {
let temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
return arr;
}
var newArr1 = maopao([2, 1, 3, 6, 7, 4, 9, 2, 1, 4, 5, 3]);
console.log(newArr1);
function xvanze(arr) {
for (var i = 0; i < arr.length; i++) {
var min = arr[i];
var k = i;
for (var j = i + 1; j < arr.length; j++) {
if (arr[j] < min) {
min = arr[j]
k = j
}
}
if (k != i) {
let temp = arr[i];
arr[i] = arr[k];
arr[k] = temp
}
}
return arr;
}
var newArr2 = xvanze([2, 1, 3, 6, 7, 4, 9, 2, 1, 4, 5, 3]);
console.log(newArr2);
function charu(arr) {
for (let i = 1; i < arr.length; i++) {
let flag = i;
let compare = arr[i];
for (let j = i - 1; j >= 0; j--) {
if (arr[j] > compare) {
flag = j;
arr[j + 1] = arr[j];
}
}
arr[flag] = compare;
}
return arr;
}
var newArr3 = charu([2, 1, 3, 6, 7, 4, 9, 2, 1, 4, 5, 3]);
console.log(newArr3);
function kuaisu(arr) {
if (arr.length <= 1) {
return arr;
}
let first = arr.splice(0, 1)[0]
let left = [];
let right = [];
for (let i = 0; i < arr.length; i++) {
if (arr[i] < first) {
left.push(arr[i]);
} else {
right.push(arr[i]);
}
}
return kuaisu(left).concat([first], kuaisu(right));
}
console.log(kuaisu([2, 5, 3, 1, 6, 4, 2]))
var newArr4 = kuaisu([2, 4, 1, 3, 6, 7, 4, 9, 2, 1, 4, 5, 3]);
console.log(newArr4);
function merge(arr1, arr2) {
let res = [];
while (arr1.length > 0 && arr2.length > 0) {
if (arr1[0] > arr2[0]) {
res.push(arr2.shift())
} else {
res.push(arr1.shift())
}
}
return res.concat(arr1, arr2)
}
function MergeSort(arr) {
if (arr.length == 1) return arr
let mid = Math.floor(arr.length / 2)
let arr1 = arr.slice(0, mid)
let arr2 = arr.slice(mid)
return merge(MergeSort(arr1), MergeSort(arr2))
}
console.log(MergeSort([2, 1, 3, 6, 7, 4, 9, 2, 1, 4, 5, 3]))
</script>
</body>
</html>