小编pav*_*elf的帖子

如何在Julia中实现二进制搜索树?

我试图在Julia中实现BST,但是当我调用insert函数时遇到了问题.当我尝试创建新节点时,结构保持不变.

我的代码:

type Node
    key::Int64
    left
    right
end

function insert(key::Int64, node)
    if node == 0
        node = Node(key, 0, 0)
    elseif key < node.key
        insert(key, node.left)
    elseif key > node.key
        insert(key, node.right)
    end
end

root = Node(0,0,0)
insert(1,root)
insert(2,root)
Run Code Online (Sandbox Code Playgroud)

我也尝试将零变为零.我试过的下一个版本是在Node中使用已定义的数据类型,但是当我尝试调用没有任何值的insert(类似于C Null)时,它给了我错误.

谢谢你的回答.

julia

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

Julia pi近似慢

我的pi近似代码与官方页面上的代码非常相似:

function piaprox()
    sum = 1.0
    for i = 2:m-1
        sum = sum + (1.0/(i*i))
    end
end

m = parse(Int,ARGS[1])
opak = parse(Int,ARGS[2])

@time for i = 0:opak
    piaprox()
end
Run Code Online (Sandbox Code Playgroud)

当我尝试比较C和Julia的时间时,Julia明显变慢,m = 100000000几乎为38秒(C的时间为0.1608328933秒).为什么会这样?

julia

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

使用@parallel,Julia明显变慢了

我有这个代码(原始传热):

function heat(first, second, m)
    @sync @parallel for d = 2:m - 1
        for c = 2:m - 1
            @inbounds second[c,d] = (first[c,d] + first[c+1, d] + first[c-1, d] + first[c, d+1] + first[c, d-1]) / 5.0;
        end
    end
end

m = parse(Int,ARGS[1]) #size of matrix
firstm = SharedArray(Float64, (m,m))
secondm = SharedArray(Float64, (m,m))

for c = 1:m
    for d = 1:m
        if c == m || d == 1
            firstm[c,d] = 100.0
            secondm[c,d] = 100.0
        else
            firstm[c,d] = 0.0 …
Run Code Online (Sandbox Code Playgroud)

julia

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

标签 统计

julia ×3