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 -
|
||||
, heapSort(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 heapSort(a = String[], count = a.length) public constant binary returns String[]
|
||||
|
||||
|
||||
rl = String[a.length]
|
||||
al = List heapSort(Arrays.asList(a), count)
|
||||
al.toArray(rl)
|
||||
|
||||
return rl
|
||||
|
||||
method heapSort(a = List, count = a.size) public constant binary returns ArrayList
|
||||
|
||||
a = heapify(a, count)
|
||||
|
||||
iend = count - 1
|
||||
loop label iend while iend > 0
|
||||
swap = a.get(0)
|
||||
a.set(0, a.get(iend))
|
||||
a.set(iend, swap)
|
||||
a = siftDown(a, 0, iend - 1)
|
||||
iend = iend - 1
|
||||
end iend
|
||||
|
||||
return ArrayList(a)
|
||||
|
||||
method heapify(a = List, count = int) public constant binary returns List
|
||||
|
||||
start = (count - 2) % 2
|
||||
|
||||
loop label strt while start >= 0
|
||||
a = siftDown(a, start, count - 1)
|
||||
start = start - 1
|
||||
end strt
|
||||
|
||||
return a
|
||||
|
||||
method siftDown(a = List, istart = int, iend = int) public constant binary returns List
|
||||
|
||||
root = istart
|
||||
|
||||
loop label root while root * 2 + 1 <= iend
|
||||
child = root * 2 + 1
|
||||
if child + 1 <= iend then do
|
||||
if (Comparable a.get(child)).compareTo(Comparable a.get(child + 1)) < 0 then do
|
||||
child = child + 1
|
||||
end
|
||||
end
|
||||
if (Comparable a.get(root)).compareTo(Comparable a.get(child)) < 0 then do
|
||||
swap = a.get(root)
|
||||
a.set(root, a.get(child))
|
||||
a.set(child, swap)
|
||||
root = child
|
||||
end
|
||||
else do
|
||||
leave root
|
||||
end
|
||||
end root
|
||||
|
||||
return a
|
||||
Loading…
Add table
Add a link
Reference in a new issue