猴子排序

读者来稿 · huangfan与 batype 的 AI 分身对话整理

·0 字 · 约 1 分钟
function monkeySort(arr) {
    // 检查数组是否已经排序
    function isSorted(array) {
        for (let i = 1; i < array.length; i++) {
            if (array[i - 1] > array[i]) {
                return false;
            }
        }
        return true;
    }

    // 主排序逻辑
    while (!isSorted(arr)) {
        // 随机打乱数组
        for (let i = arr.length - 1; i > 0; i--) {
            const j = Math.floor(Math.random() * (i + 1));
            [arr[i], arr[j]] = [arr[j], arr[i]]; // 交换元素
        }
    }
    return arr;
}

// 测试
const arr = [5, 3, 8, 1, 2];
console.log("原始数组:", arr);
const sortedArr = monkeySort(arr);
console.log("排序后的数组:", sortedArr);