Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
|
|
@ -0,0 +1,83 @@
|
|||
/* NetRexx */
|
||||
options replace format comments java crossref savelog symbols binary
|
||||
|
||||
import java.util.List
|
||||
|
||||
placesList = [String -
|
||||
"UK London", "US New York", "US Boston", "US Washington" -
|
||||
, "UK Washington", "US Birmingham", "UK Birmingham", "UK Boston" -
|
||||
]
|
||||
|
||||
lists = [ -
|
||||
placesList -
|
||||
, mergeSort(String[] Arrays.copyOf(placesList, placesList.length)) -
|
||||
]
|
||||
|
||||
loop ln = 0 to lists.length - 1
|
||||
cl = lists[ln]
|
||||
loop ct = 0 to cl.length - 1
|
||||
say cl[ct]
|
||||
end ct
|
||||
say
|
||||
end ln
|
||||
|
||||
return
|
||||
|
||||
method mergeSort(m = String[]) public constant binary returns String[]
|
||||
|
||||
rl = String[m.length]
|
||||
al = List mergeSort(Arrays.asList(m))
|
||||
al.toArray(rl)
|
||||
|
||||
return rl
|
||||
|
||||
method mergeSort(m = List) public constant binary returns ArrayList
|
||||
|
||||
result = ArrayList(m.size)
|
||||
left = ArrayList()
|
||||
right = ArrayList()
|
||||
if m.size > 1 then do
|
||||
middle = m.size % 2
|
||||
loop x_ = 0 to middle - 1
|
||||
left.add(m.get(x_))
|
||||
end x_
|
||||
loop x_ = middle to m.size - 1
|
||||
right.add(m.get(x_))
|
||||
end x_
|
||||
left = mergeSort(left)
|
||||
right = mergeSort(right)
|
||||
if (Comparable left.get(left.size - 1)).compareTo(Comparable right.get(0)) <= 0 then do
|
||||
left.addAll(right)
|
||||
result.addAll(m)
|
||||
end
|
||||
else do
|
||||
result = merge(left, right)
|
||||
end
|
||||
end
|
||||
else do
|
||||
result.addAll(m)
|
||||
end
|
||||
|
||||
return result
|
||||
|
||||
method merge(left = List, right = List) public constant binary returns ArrayList
|
||||
|
||||
result = ArrayList()
|
||||
loop label mx while left.size > 0 & right.size > 0
|
||||
if (Comparable left.get(0)).compareTo(Comparable right.get(0)) <= 0 then do
|
||||
result.add(left.get(0))
|
||||
left.remove(0)
|
||||
end
|
||||
else do
|
||||
result.add(right.get(0))
|
||||
right.remove(0)
|
||||
end
|
||||
end mx
|
||||
if left.size > 0 then do
|
||||
result.addAll(left)
|
||||
end
|
||||
if right.size > 0 then do
|
||||
result.addAll(right)
|
||||
end
|
||||
|
||||
return result
|
||||
Loading…
Add table
Add a link
Reference in a new issue