赤石算法
线段树优化选择排序
让我们回顾一下选择排序的过程。
选择排序(英语:Selection sort)是一种简单直观的排序算法。它的工作原理是每次找出第 小的元素(也就是 中最小的元素),然后将这个元素与数组第 个位置上的元素交换。其最优、平均、和最坏时间复杂度均为 。 1
朴素的选择排序实现中,找出 中最小的元素是通过遍历一遍的方式进行的,单次的时间复杂度为 ,不够优秀。
我们用线段树优化这个过程,实现一颗单点修改、区间最小值的线段树,其单点修改和区间查询的时间复杂度均为 ,进行一次排序的时间复杂度即 ,已经达到基于比较的排序算法理论最优时间复杂度,十分高效。
浙公网安备 33010602011771号