gpt4 book ai didi

javascript - *在排序时*在数组中插入新的随机数

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:12:24 24 4
gpt4 key购买 nike

在排序函数运行时,每隔 x 秒将新的随机数添加到正在排序的数组中。例如 x 可以是 1 秒。 100k 随机数数组的排序大约需要 10 秒。排序函数将如何更新以考虑函数运行时插入的新随机数?如有必要,可以使用 Web Worker 来模拟并发。

https://repl.it/repls/OutstandingVioletPolyhedron

let a;
for (a=[],i=0;i<100000;++i)
a[i]=i;

function shuffle(array) {
let tmp, current, top = array.length;
if(top) while(--top) {
current = Math.floor(Math.random() * (top + 1));
tmp = array[current];
array[current] = array[top];
array[top] = tmp;
}
return array;
}

a = shuffle(a)


const insertionSort = arr => {
const len = arr.length;
for (let i = 0; i < len; i++) {
let el = arr[i];
let j;

for (j = i - 1; j >= 0 && arr[j] > el; j--) {
arr[j + 1] = arr[j];
}
arr[j + 1] = el;
}
console.log(arr)
return arr;
};

const start = performance.now()
a = insertionSort(a)
const end = performance.now()
const time = (end - start) / 1000
console.log("time", time)

最佳答案

Javascript 是单线程的。它一次可以做一件事。要完成这项工作,您必须以非占有方式重写排序函数,以便它在特定时间后将控制权交还给其他操作。

关于javascript - *在排序时*在数组中插入新的随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58286608/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com