小编Sim*_*men的帖子

Julia merge-sort实现无法正常工作

我不太清楚为什么我的merge-sort实现不起作用.

merge_sort将数组A作为参数,以及起始和最终索引p和r.如果我尝试在A = [1,64,64,315,14,2,3,4,5]上运行merge_sort(A,1,9),A将变为A = [1,1,1,1, 1,2,2,4,5].我正在尝试使用标记来检测L和R阵列是否已经耗尽.

这是代码:

function merge_sort(A, p, r)
    if p < r
        q = floor(Int, (p+r)/2)
        merge_sort(A, p, q)
        merge_sort(A, q+1, r)
        merge(A, p, q, r)
    end
end



function merge(A, p, q, r)
    n1 = q-p+1
    n2 = r-q
    L = []
    R = []

    for i = 1:n1
      push!(L, A[p+1-1])
    end

    for j = 1:n2
      push!(R, A[q+j])
    end

    sentinel = 123456789
    push!(L, sentinel)
    push!(R, sentinel)
    i=1
    j=1

    for k=p:r
      if L[i] <= R[j]
         A[k] = …
Run Code Online (Sandbox Code Playgroud)

sorting mergesort julia

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

标签 统计

julia ×1

mergesort ×1

sorting ×1