<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>排序默写第四遍</title>
</head>
<body>
<script>
function bubbleSort(arr) {
for (let i = 0; i < arr.length - 1; i++) {
for (let j = 0; j < arr.length - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
[arr[j], arr[j + 1]] = [arr[j + 1], arr[j]];
}
}
}
return arr;
}
// 函数柯里化记得 有两个 return _adder
function add() {
let _args = [...arguments];
let _adder = function () {
_args.push(...arguments);
return _adder;
};
_adder.toString = function () {
return _args.reduce((total, cur) => total + cur, 0);
};
return _adder;
}
function isPlaind(x) {
if (x < 0) return false;
let d = 0;
let f = x;
while (f > 0) {
d = d * 10 + (f % 10);
f = (f - (f % 10)) / 10;
}
return d === x;
}
function isPlaind1(x) {
return String(x).split('').reverse().join('') === String(x);
}
function selection(arr) {
let minIndex;
for (let i = 0; i < arr.length - 1; i++) {
minIndex = i;
for (let j = i + 1; j < arr.length; j++) {
if (arr[j] < arr[minIndex]) {
minIndex = j;
}
}
[arr[i], arr[minIndex]] = [arr[minIndex], arr[i]];
}
return arr;
}
function quickSort(arr) {
if (arr.length <= 1) {
return arr;
}
let left = [];
let right = [];
let middleIndex = Math.floor(arr.length / 2);
let middleValue = arr[middleIndex];
arr.splice(middleIndex, 1);
for (let i = 0; i < arr.length; i++) {
if (arr[i] < middleValue) {
left.push(arr[i]);
} else {
right.push(arr[i]);
}
}
return quickSort(left).concat(middleValue, quickSort(right));
}
function searching(arr, target) {
let start = 0;
let end = arr.length - 1;
let middleIndex;
let middleValue;
while (start <= end) {
middleIndex = Math.floor((start + end) / 2);
middleValue = arr[middleIndex];
if (target === middleValue) {
return middleIndex;
} else if (target < middleValue) {
end = middleIndex - 1;
} else {
start = middleIndex + 1;
}
}
return -1;
}
function flat(arr) {
return arr.reduce((total, cur) => {
return total.concat(Array.isArray(cur) ? flat(cur) : cur);
}, []);
}
function deepCopy(obj) {
let result = Array.isArray(obj) ? [] : {};
for (let key in obj) {
if (obj.hasOwnProperty(key)) {
if (typeof obj[key] === 'object' && obj[key] !== null) {
result[key] = deepCopy(obj[key]);
} else {
result[key] = obj[key];
}
}
}
return result;
}
</script>
</body>
</html>