Sort the letters of string in alphabetical order: Difference between revisions
Content added Content deleted
(→{{header|F_Sharp|F#}}: Added Turkish) |
m (→{{header|Julia}}: simplify) |
||
Line 235: | Line 235: | ||
=={{header|Julia}}== |
=={{header|Julia}}== |
||
<lang julia>function mergesort!(array) |
<lang julia>function mergesort!(array, lt = <, low = 1, high = length(array), tmp=similar(array, 0)) |
||
high <= low && return array |
|||
middle = div(length(array), 2) |
|||
middle |
middle = low + div(high - low, 2) |
||
(length(tmp) < middle - low + 1) && resize!(tmp, middle - low + 1) |
|||
mergesort!( |
mergesort!(array, lt, low, middle, tmp) |
||
mergesort!( |
mergesort!(array, lt, middle + 1, high, tmp) |
||
i, j = 1, low |
|||
merge!(array[begin:middle], array[middle+1:end], array) |
|||
while j <= middle |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
i, k = 1, low |
|||
function merge!(arr1, arr2, ret) |
|||
while k < j <= high |
|||
if lt(array[j], tmp[i]) |
|||
while left <= length(arr1) && right <= length(arr2) |
|||
array[k] = array[j] |
|||
j += 1 |
|||
⚫ | |||
⚫ | |||
else |
else |
||
array[k] = tmp[i] |
|||
i += 1 |
i += 1 |
||
⚫ | |||
end |
end |
||
k += 1 |
|||
end |
end |
||
while k < j |
|||
array[k] = tmp[i] |
|||
k += 1 |
|||
i += 1 |
|||
ret[i:end] .= arr2[right:end] |
|||
end |
end |
||
return array |
|||
end |
end |
||
mergesort( |
mergesort(str::String) = String(mergesort!(collect(str))) |
||
mergesort(str::String) = String(mergesort(collect(str))) |
|||
function testmergesort(s::String, stripws= true) |
function testmergesort(s::String, stripws= true) |