Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Counting sort
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Input and output assumptions== In the most general case, the input to counting sort consists of a [[collection (abstract data type)|collection]] of {{mvar|n}} items, each of which has a non-negative integer key whose maximum value is at most {{mvar|k}}.<ref name="sedgewick"/> In some descriptions of counting sort, the input to be sorted is assumed to be more simply a sequence of integers itself,<ref name="clrs"/> but this simplification does not accommodate many applications of counting sort. For instance, when used as a subroutine in [[radix sort]], the keys for each call to counting sort are individual digits of larger item keys; it would not suffice to return only a sorted list of the key digits, separated from the items. In applications such as in radix sort, a bound on the maximum key value {{mvar|k}} will be known in advance, and can be assumed to be part of the input to the algorithm. However, if the value of {{mvar|k}} is not already known then it may be computed, as a first step, by an additional loop over the data to determine the maximum key value. The output is an [[Array data structure|array]] of the elements ordered by their keys. Because of its application to radix sorting, counting sort must be a [[stable sort]]; that is, if two elements share the same key, their relative order in the output array and their relative order in the input array should match.<ref name="clrs"/><ref name="edmonds"/>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)