Do I have to cite common CS algorithms?

Do I have to cite common CS algorithms?

No.

The fact that it was first published [in] 1961 isn't relevant, you needn't cite it because it is [widely] used and [well-]known by almost anyone in the CS world.

That said, although a citation isn't necessary, you can provide one at your discretion. Such a citation is probably more important for a final thesis than for an academic publication, since it may be considered important for students to demonstrate they can cite.

Beyond citing the original source, you may like to cite your favourite textbook(s) on the topic (rather than citing the entire volume, reference a particular section, e.g., \cite[Chapter 4.3]{Textbook} in LaTeX).


If the specific use of the algorithm is important to the work, then you should cite what specifically you used or implemented, and also citing the broadest/oldest class of algorithms would be strictly optional. Using the example of quicksort, there are many dozens of varieties of it that have the same general idea but have different characteristics and performance. If you used the 1961 paper as a reference for your implementation, then of course you would cite it. If you used the Java or C++ sort function (which are different and have changed between versions - mergesort, timsort, hybrid, etc.), you would just say so and don't need to hunt down what that was based on.

On the other hand, if sorting is not an important part of the work (it matters only that it was sorted, not how you sorted it), it is common and accepted not to bother citing every last little detail like this. In most cases how something was sorted is so unimportant that it isn't even mentioned in text at all, but of course if your work is on sorting algorithms (and in a thesis) you should be more detailed and cite liberally.

As this is not for a conference but for a thesis, and possibly part of a graded course, you should probably just cite it anyway, possibly both the original and whatever source you actually used for reference (textbook, code library, whatever). Especially at the less-than-PhD level, instructors are much more likely to prefer heavy use of citations, and I've known many professors to ding for lack of citation of things that one would not bother to mention or cite in an actual paper.


"Quicksort" today rarely refers to the 1961 version; the algorithm has been improved since then. If you're going to cite, you should of course cite something that's relevant to your thesis. As others stated, if you just needed an algorithm to get things sorted, that doesn't need citing. But if your thesis did depend on the details of sorting, then is suddenly becomes important to cite, and cite right.