Add tasks for all the new languages
This commit is contained in:
parent
9dc3c2bb62
commit
bba7bfd280
13208 changed files with 134745 additions and 0 deletions
|
|
@ -0,0 +1,29 @@
|
|||
func merge(left, right) {
|
||||
var result = [];
|
||||
while (!left.is_empty && !right.is_empty) {
|
||||
result.append([right,left][left.first <= right.first].shift);
|
||||
};
|
||||
result + left + right;
|
||||
}
|
||||
|
||||
func mergesort(array) {
|
||||
var len = array.len;
|
||||
len < 2 && return array;
|
||||
|
||||
var mid = (len/2 -> int);
|
||||
var left = array.ft(0, mid-1);
|
||||
var right = array.ft(mid);
|
||||
|
||||
left = __FUNC__(left);
|
||||
right = __FUNC__(right);
|
||||
|
||||
merge(left, right);
|
||||
}
|
||||
|
||||
# Numeric sort
|
||||
var nums = (0..7 -> shuffle);
|
||||
say mergesort(nums);
|
||||
|
||||
# String sort
|
||||
var strings = ('a'..'e' -> shuffle);
|
||||
say mergesort(strings);
|
||||
Loading…
Add table
Add a link
Reference in a new issue