Sorting algorithms/Gnome sort: Difference between revisions

Content added Content deleted
No edit summary
Line 1,380: Line 1,380:


=={{header|Julia}}==
=={{header|Julia}}==
{{works with|Julia|0.6}}


<lang julia>function gnomesort!(arr::Vector)
Julia is one-indexed so the implementation differs slightly from the pseudocode.
i, j = 1, 2

while i < length(arr)
<lang Julia>function gnomesort(A::AbstractVector)
i = 1
if arr[i] arr[i+1]
j = 2
while i < length(A)
if A[i] <= A[i + 1]
i = j
i = j
j += 1
j += 1
else
else
A[i], A[i + 1] = A[i + 1], A[i]
arr[i], arr[i+1] = arr[i+1], arr[i]
i -= 1
i -= 1
if i == 0
if i == 0
Line 1,399: Line 1,397:
end
end
end
end
A
return arr
end
end


v = rand(-10:10, 10)
A = randcycle(20)
println("unsorted: ", A)
println("# unordered: $v\n -> ordered: ", bogosort!(v))</lang>
println("sorted: ", gnomesort(A))</lang>


{{out}}
{{out}}
<pre># unordered: [9, -8, 0, 3, 2, 10, 5, 4, 5, 5]

<pre>unsorted: [13,15,6,11,3,19,17,20,2,18,9,14,8,10,16,7,12,1,4,5]
-> ordered: [-8, 0, 2, 3, 4, 5, 5, 5, 9, 10]</pre>
sorted: [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]</pre>


=={{header|Kotlin}}==
=={{header|Kotlin}}==