Sorting algorithms/Counting sort: Difference between revisions
Content added Content deleted
mNo edit summary |
(smalltalk) |
||
Line 198: | Line 198: | ||
Sorted: 10 20 30 40 50 60 70 80 |
Sorted: 10 20 30 40 50 60 70 80 |
||
</pre> |
</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}}== |
=={{header|Tcl}}== |