分块查找原理与优缺点
排序算法可以分为两大类:比较类排序和非比较类排序。
比较类排序
- 冒泡排序(Bubble Sort):通过重复地走访数列,比较相邻元素并交换错误顺序的元素,直到数列排序完成。冒泡排序是稳定的排序算法。
* 选择排序(Selection Sort):在未排序序列中找到最小(或最大)元素,存放到排序序列的起始位置,然后再从剩余未排序元素中继续寻找最小(或最大)元素,依次类推。选择排序是不稳定的排序算法。 - 快速排序(Quick Sort):是对冒泡排序的一种改进,通过选择一个基准元素,将数列分为两部分,一部分所有元素都比基准元素小,另一部分所有元素都比基准元素大,然后递归地对这两部分进行排序。快速排序通常是不稳定的,但可以通过改进变为稳定的。
* 归并排序(Merge Sort):采用分治法,将数列分为两部分,分别对两部分进行排序,然后将排好序的两部分合并。归并排序是稳定的排序算法。 - 堆排序(Heap Sort):利用堆这种数据结构所设计的一种排序算法,堆是一个近似完全二叉树的结构,并同时满足堆积的性质,即子节点的键值或索引总是小于(或大于)它的父节点。堆排序是不稳定的排序算法。
非比较类排序
- 计数排序(Counting Sort):通过确定输入数据中元素的最大值和最小值的范围,为该范围内的每个元素计数,并根据计数将元素排序。计数排序是稳定的排序算法,且时间复杂度为线性时间O(n+k),其中k是元素的范围。
* 基数排序(Radix Sort):按照低位先排序,然后收集;再按照高位排序,然后再收集;以此类推,直到最高位。基数排序是稳定的排序算法,且对于大量数据排序时,效率较高。 - 桶排序(Bucket Sort):将数组元素分到有限数量的桶里,每个桶再分别排序,最后依次合并各个桶中的元素得到排序结果。桶排序是稳定的排序算法,且适用于数据分布均匀的情况。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Web304030!