算法笔记(选择算法)

包括,选择最大值,最小值,选择第k大元素的算法。其中选择第k大元素包括随机选择算法和最坏线性时间算法。选择算法有一个假设就是输入的元素都不相同,如果是输入序列有重复的,那么这些算法都不适用。由于输入序列条件苛刻,因此实际应用中感觉很难用,还不如老老实实先排序,然后再遍历寻找。

下面是算法实现代码:


后记:上述线性期望的选择算法是否可以改造成可适用有重复元素的情况,我感觉是比较困难,采用先排序再处理,增加的也是线性时间,只要排序算法是线性的,也可以达到线性选择。其实比较好的做法就是数据开始就是排序的,每次删除和增加都保持排序,虽然慢点,但由于这种操作比较少,而查询很频繁的情况下还是很好的。BigTable等其实都是这样做的.

你可能感兴趣的:(算法)