我最近实现了一个,它使用List.permute来混洗列表,并注意到随着列表大小的增加,性能会显著下降。我怀疑这是因为,虽然算法假设它在一个数组上操作,但permute必须通过索引访问列表元素,索引为O(n)。为了确认这一点,我尝试将置换应用于列表以反转其元素,比较直接在列表上工作,并将列表转换为数组,然后再转换回列表:let test = [0 .. 10000 ]
let perm i = permute i (L
我试图解决一个问题,我输入两个不同长度的向量并添加它们的标量积。它是提出的最小标量乘积问题。显然,我没有希望地运行一个无限loop.Probably,因为permutation.But,我不明白为什么。#include <algorithm>using namespace std;
int cases[100];int ncase;{
for (int i = 1;