在计算机科学与数学中,排序算法是一种基本并且常用的算法,一个排序演算法是一种能将一串资料依照
特定排序方式的一种演算法。有效的排序演算法在一些演算法中是重要的,如此这些演算法才能得到正确
解答。排序演算法也用在处理文字资料以及产生人类可读的输出结果。由于实际工作中处理的数量巨大,
所以排序算法对算法本身的速度要求很高。现介绍 C/C++中几种常见排序算法的简单运用方法。
常见排序算法的实现(一)→插入排序
插入排序是最简单最直观的排序算法了,它的依据是:遍历到第 N 个元素的时候前面的 N-1 个
元素已经是排序好的了,那么就查找前面的 N-1 个元素把这第 N 个元素放在合适的位置,如此下去
直到遍历完序列的元素为止。
算法的复杂度也是简单的,排序第一个需要 1 的复杂度,排序第二个需要 2 的复杂度,因此整
个的复杂度就是
1 + 2 + 3 + …… + N = O(N ^ 2)的复杂度。[详细内容]
常见排序算法的实现(二)→shell 排序
shell 排序是对插入排序的一个改装,它每次排序把序列的元素按照某个增量分成几个子序
列,对这几个子序列进行插入排序,然后不断缩小增量扩大每个子序列的元素数量,直到增量为一
的时候子序列就和原先的待排列序列一样了,此时只需要做少量的比较和移动就可以完成对序列的
排序了。[详细内容]