Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
|
|
@ -0,0 +1,39 @@
|
|||
var merge = Fn.new { |left, right|
|
||||
var result = []
|
||||
while (left.count > 0 && right.count > 0) {
|
||||
if (left[0] <= right[0]) {
|
||||
result.add(left[0])
|
||||
left = left[1..-1]
|
||||
} else {
|
||||
result.add(right[0])
|
||||
right = right[1..-1]
|
||||
}
|
||||
}
|
||||
if (left.count > 0) result.addAll(left)
|
||||
if (right.count > 0) result.addAll(right)
|
||||
return result
|
||||
}
|
||||
|
||||
var mergeSort // recursive
|
||||
mergeSort = Fn.new { |m|
|
||||
var len = m.count
|
||||
if (len <= 1) return m
|
||||
var middle = (len/2).floor
|
||||
var left = m[0...middle]
|
||||
var right = m[middle..-1]
|
||||
left = mergeSort.call(left)
|
||||
right = mergeSort.call(right)
|
||||
if (left[-1] <= right[0]) {
|
||||
left.addAll(right)
|
||||
return left
|
||||
}
|
||||
return merge.call(left, right)
|
||||
}
|
||||
|
||||
var as = [ [4, 65, 2, -31, 0, 99, 2, 83, 782, 1], [7, 5, 2, 6, 1, 4, 2, 6, 3] ]
|
||||
for (a in as) {
|
||||
System.print("Before: %(a)")
|
||||
a = mergeSort.call(a)
|
||||
System.print("After : %(a)")
|
||||
System.print()
|
||||
}
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
import "/sort" for Sort
|
||||
|
||||
var as = [ [4, 65, 2, -31, 0, 99, 2, 83, 782, 1], [7, 5, 2, 6, 1, 4, 2, 6, 3] ]
|
||||
for (a in as) {
|
||||
System.print("Before: %(a)")
|
||||
a = Sort.merge(a)
|
||||
System.print("After : %(a)")
|
||||
System.print()
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue