gpt4 book ai didi

JavaScript 函数多次调用

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:54:01 25 4
gpt4 key购买 nike

源代码:

function CreateArray(length) {
var array1 = [];
for (var k = 0, t = length; k < t; k++) {
array1.push(Math.round(Math.random() * 3000000))
};
return array1;
var array = CreateArray(100,500,1000) // works only for 100


console.time("insertionSort")

function insertionSort(array) {
var countOuter = 0;
var countInner = 0;
var countSwap = 0;

for(var i = 0; i < array.length; i++) {
countOuter++;
var temp = array[i];
var j = i - 1;
while (j >= 0 && array[j] > temp) {
countInner++;
countSwap++;
array[j + 1] = array[j];
j--;
}
array[j + 1] = temp;
}

console.log('outer:', countOuter, 'inner:', countInner, 'swap:', countSwap);
return array;
}
console.timeEnd("insertionSort")

insertionSort(array.slice());

最后一次调用我想检查 100,500,1000,5000 和其他不同的长度。有什么想法吗?

我希望最后一次调用适用于任何长度的数组。

最佳答案

您需要 CreateArray 来一次创建多个数组,然后您需要 insertionSort 来一次处理多个数组 - 或者,更好的是,调用 另一个函数(一次)为每个数组调用insertionSort:

const CreateArray = (...lengths) => lengths.map(length => (
Array.from({ length }, () => Math.floor(Math.random() * 3000000))
));

function insertionSort(array) {
var countOuter = 0;
var countInner = 0;
var countSwap = 0;
for (var i = 0; i < array.length; i++) {
countOuter++;
var temp = array[i];
var j = i - 1;
while (j >= 0 && array[j] > temp) {
countInner++;
countSwap++;
array[j + 1] = array[j];
j--;
}
array[j + 1] = temp;
}
console.log('outer:', countOuter, 'inner:', countInner, 'swap:', countSwap);
}
const insertionSortMultipleArrays = (arrs) => {
arrs.forEach(arr => {
console.time("insertionSort");
insertionSort(arr);
console.timeEnd("insertionSort");
});
};

const arrays = CreateArray(100,500,1000,5000);
insertionSortMultipleArrays(arrays);

关于JavaScript 函数多次调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50894412/

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