September 2017 Update

This commit is contained in:
Ingy döt Net 2017-09-23 10:01:46 +02:00
parent bba7bfd280
commit ba8067c3b7
14570 changed files with 153136 additions and 63871 deletions

View file

@ -1,18 +1,18 @@
class Array {
method radix_sort(base=10) {
var arr = self.clone;
var rounds = ([arr.minmax].map{.abs}.max -> log(base).floor + 1);
for i in ^rounds {
var buckets = (2*base -> of {[]});
var base_i = base**i;
var arr = self.clone
var rounds = ([arr.minmax].map{.abs}.max.ilog(base) + 1)
for i in (0..rounds) {
var buckets = (2*base -> of {[]})
var base_i = base**i
for n in arr {
var digit = (n/base_i % base);
digit += base if (0 <= n);
buckets[digit].append(n);
var digit = (n/base_i % base)
digit += base if (0 <= n)
buckets[digit].append(n)
}
arr = buckets.flatten;
arr = buckets.flat
}
return arr;
return arr
}
}
@ -22,5 +22,5 @@ for arr in [
[170, 45, 75, 90, 2, 24, -802, -66],
[100000, -10000, 400, 23, 10000],
] {
say arr.radix_sort;
say arr.radix_sort
}