June 2018 Update

This commit is contained in:
Ingy döt Net 2018-06-22 20:57:24 +00:00
parent ba8067c3b7
commit 22f33d4004
5278 changed files with 84726 additions and 14379 deletions

View file

@ -1,36 +1,22 @@
function beadsort{T<:Integer}(a::Array{T,1})
(lo, hi) = extrema(a)
if lo < 1
throw(DomainError())
end
hi = convert(Int, hi)
function beadsort(a::Vector{<:Integer})
lo, hi = extrema(a)
if lo < 1 throw(DomainError()) end
len = length(a)
abacus = falses(len, hi)
for (i, v) in enumerate(a)
abacus[i,1:v] = true
abacus[i, 1:v] = true
end
for i in 1:hi
v = sum(abacus[:,i])
v = sum(abacus[:, i])
if v < len
abacus[1:end-v,i] = false
abacus[end-v+1:end,i] = true
abacus[1:end-v, i] = false
abacus[end-v+1:end, i] = true
end
end
return T[sum(abacus[i,:]) for i in 1:len]
return collect(eltype(a), sum(abacus[i,:]) for i in 1:len)
end
a = Uint8[rand(1:typemax(Uint8)) for i in 1:20]
println("Sort of Unsigned Bytes:")
println(" Before Sort:")
println(" ", a)
a = beadsort(a)
println("\n After Sort:")
println(" ", a, "\n")
a = [rand(1:2^10) for i in 1:20]
println("Sort of Integers:")
println(" Before Sort:")
println(" ", a)
a = beadsort(a)
println("\n After Sort:")
println(" ", a)
v = rand(UInt8, 20)
println("# unsorted bytes: $v\n -> sorted bytes: $(beadsort(v))")
v = rand(1:2 ^ 10, 20)
println("# unsorted integers: $v\n -> sorted integers: $(beadsort(v))")