小编Aps*_*hir的帖子

找到时间为O(n)且空间为O(1)的有符号整数

(这是一个概括:在O(n)时间和O(1)空间中查找重复项)

问题:分别编写具有O(n)和O(1)的时间和空间复杂度的C++或C函数,它们在给定数组中找到重复整数而不改变它.

示例:给定{1,0,-2,4,4,1,3,1,-2}函数必须打印1,-2和4一次(按任意顺序).


编辑:以下解决方案需要在数组的最小值到最大值范围内的每个整数的二进制位(表示0,1和2).必要字节数(不管数组大小)永远不会超过(INT_MAX – INT_MIN)/4 + 1.

#include <stdio.h>

void set_min_max(int a[], long long unsigned size,\
                 int* min_addr, int* max_addr)
{
    long long unsigned i;

    if(!size) return;
    *min_addr = *max_addr = a[0];
    for(i = 1; i < size; ++i)
    {
        if(a[i] < *min_addr) *min_addr = a[i];
        if(a[i] > *max_addr) *max_addr = a[i];
    }
}

void print_repeats(int a[], long long unsigned size)
{
    long long unsigned i;
    int min, max = min;
    long long diff, q, …
Run Code Online (Sandbox Code Playgroud)

c c++ algorithm math

13
推荐指数
2
解决办法
1173
查看次数

尝试使用Perl6.org上演示的线程

我保存了

my $thread = Thread.start({ for  1 .. 10  -> $v { say $v }});
Run Code Online (Sandbox Code Playgroud)

https://docs.perl6.org/language/concurrency#Threads到一个文件并运行perl6 file.pl但得到错误

Undeclared name: Thread used ...
Run Code Online (Sandbox Code Playgroud)

任何想法如何解决问题?(该文档未提及使用任何包.)

[编辑:即使今天(2016年5月4日)"apt-get install rakudo"制作:

阅读包列表...完成
构建依赖关系树
读取状态信息...完成
rakudo已经是最新版本.

所以也许apt-get不是获取Perl最新版本的方法(至少在Mint上).最全面的答案是raiph的评论.]

multithreading perl6

1
推荐指数
1
解决办法
104
查看次数

标签 统计

algorithm ×1

c ×1

c++ ×1

math ×1

multithreading ×1

perl6 ×1