Sorting algorithms/Counting sort: Difference between revisions

smalltalk
mNo edit summary
(smalltalk)
Line 198:
Sorted: 10 20 30 40 50 60 70 80
</pre>
 
=={{header|Smalltalk}}==
{{works with|GNU Smalltalk}}
 
<lang smalltalk>OrderedCollection extend [
countingSortWithMin: min andMax: max [
|oc z|
oc := OrderedCollection new.
1 to: (max - min + 1) do: [ :n| oc add: 0 ].
self do: [ :v |
oc at: (v - min + 1) put: ( (oc at: (v - min + 1)) + 1)
].
z := 1.
min to: max do: [ :i |
1 to: (oc at: (i - min + 1)) do: [ :k |
self at: z put: i.
z := z + 1.
]
]
]
].</lang>
 
Testing:
 
<lang smalltalk>|ages|
 
ages := OrderedCollection new.
 
1 to: 100 do: [ :n |
ages add: (Random between: 0 and: 140)
].
 
ages countingSortWithMin: 0 andMax: 140.
ages printNl.</lang>
 
=={{header|Tcl}}==