all tasks
This commit is contained in:
parent
b83f433714
commit
68f8f3e56b
14735 changed files with 178959 additions and 0 deletions
|
|
@ -0,0 +1,23 @@
|
|||
procedure main() #: demonstrate various ways to sort a list and string
|
||||
write("Sorting Demo using ",image(countingsort))
|
||||
writes(" on list : ")
|
||||
writex(UL)
|
||||
displaysort(countingsort,copy(UL))
|
||||
end
|
||||
|
||||
procedure countingsort(X) #: return sorted list (integers only)
|
||||
local T,lower,upper
|
||||
|
||||
T := table(0) # hash table as sparse array
|
||||
lower := upper := X[1]
|
||||
|
||||
every x := !X do {
|
||||
if not ( integer(x) = x ) then runerr(x,101) # must be integer
|
||||
lower >:= x # minimum
|
||||
upper <:= x # maximum
|
||||
T[x] +:= 1 # record x's and duplicates
|
||||
}
|
||||
|
||||
every put(X := [],( 1 to T[i := lower to upper], i) ) # reconstitute with correct order and count
|
||||
return X
|
||||
end
|
||||
Loading…
Add table
Add a link
Reference in a new issue