// 归并排序函数
function mergeSort(array) {
// 如果数组长度小于等于1,则直接返回数组(因为它已经是有序的)
if (array.length <= 1) {
return array;
}
// 找到数组的中间索引
const middleIndex = Math.floor(array.length / 2);
// 将数组分成两个子数组
const leftArray = array.slice(0, middleIndex);
const rightArray = array.slice(middleIndex);
// 递归地对两个子数组进行归并排序
const sortedLeftArray = mergeSort(leftArray);
const sortedRightArray = mergeSort(rightArray);
// 合并两个已排序的子数组
return merge(sortedLeftArray, sortedRightArray);
}
// 合并两个已排序的数组的函数
function merge(leftArray, rightArray) {
let sortedArray = [];
let leftIndex = 0;
let rightIndex = 0;
// 比较两个数组的元素,并将较小的元素添加到排序后的数组中
while (leftIndex < leftArray.length && rightIndex < rightArray.length) {
if (leftArray[leftIndex] < rightArray[rightIndex]) {
sortedArray.push(leftArray[leftIndex]);
leftIndex++;
} else {
sortedArray.push(rightArray[rightIndex]);
rightIndex++;
}
}
// 将剩余的元素(如果有的话)添加到排序后的数组中
return sortedArray
.concat(leftArray.slice(leftIndex))
.concat(rightArray.slice(rightIndex));
}
// 示例使用
const array = [38, 27, 43, 3, 9, 82, 10];
const sortedArray = mergeSort(array);
console.log(sortedArray); // 输出: [3, 9, 10, 27, 38, 43, 82]
body {
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
margin: 0;
background-color: #f0f0f0;
}
.progress-circle {
position: relative;
width: 150px;
height: 150px;
}
.progress-circle__circle {
width: 100%;
height: 100%;
border-radius: 50%;
background: conic-gradient(#76c7c0 var(--progress, 0%), #333 0%);
console