数据结构中有大量的排序技术如下 -
选择排序
冒泡排序
递归冒泡排序
插入排序
递归插入排序
合并排序
迭代合并排序
快速排序
迭代快速排序
堆排序
计数排序
基数排序
桶排序
壳排序时间
排序
梳状排序
鸽子洞排序
循环排序
鸡尾酒排序
链排序
等等。
我们需要所有这些吗?
在早期的计算机科学课程中讨论和研究排序算法的主要原因是因为它们提供了非常好的学习材料。排序的问题很简单,是展示几种算法策略的好借口;几种数据结构;如何实施;并讨论时间复杂度和空间复杂度;即使它们显然解决了相同的问题,算法也可以具有不同的属性。
在实践中,编程语言的标准库通常包含一个默认sort函数,例如std::sort在 C++ 或list.sortPython 中;几乎在所有情况下,您都应该信任该函数及其使用的算法。
但是你学到的关于排序算法的一切都是有价值的,可以应用于其他问题。以下是可以通过研究排序算法来学习的非详尽列表:
有这么多不同的排序算法存在,没有单一的原因。这是排序算法及其来源的采样器,以更好地了解它们的起源:
这甚至不是一个详尽的排序算法列表,但希望让您了解那里有什么以及为什么。:-)