Java 期望为线性时间的选择算法
2014-08-07 10:40
239 查看
选择数组中最大值的算法的时间复杂度为O(n-1);
选择数组中最小值的算法的时间复杂度为O(n-1);
但是同时选择最大值和最小值的时间复杂度为O(3n/2);
在数组中选择第i小得数算法的期望时间为线性
算法采用快速排序核心思想
partition 函数,请参照
Java 排序之 快速排序文章;
http://blog.csdn.net/alvintech14/article/details/38403753
选择数组中最小值的算法的时间复杂度为O(n-1);
但是同时选择最大值和最小值的时间复杂度为O(3n/2);
在数组中选择第i小得数算法的期望时间为线性
算法采用快速排序核心思想
public int select(int[] array, int sta, int end,int index){// index 要查找第index 小得值 if(sta == end) return array[sta]; int q = partition(array,sta,end) ; int k = q - sta + 1; if(k == index) return array[q]; else if(index < k) return select(array, sta, q-1, index); else return select(array, q+1, end, index - k); }
partition 函数,请参照
Java 排序之 快速排序文章;
http://blog.csdn.net/alvintech14/article/details/38403753
相关文章推荐
- 小白进阶之期望为线性时间的选择算法
- 算法--顺序统计-期望线性时间做选择
- (基于Java)算法之最坏情况下的线性时间选择
- 第九章 中位数和顺序统计量 9.2 期望为线性时间的选择算法
- 选择问题的线性期望时间算法
- 期望为线性时间的选择算法RANDOM_SELECT
- 期望为线性时间的选择算法
- 期望为线性时间的选择算法(c语言)
- 期望时间为线性时间的选择算法(C++)
- 算法导论程序19-期望为线性时间的选择算法(Python)
- 线性时间的选择算法 java版
- 算法之分治——期望线性时间的选择(基础版本的选择)
- 期望为线性时间的选择算法randomizedSelect
- 第九章 中位数和顺序统计量 9.2 期望为线性时间的选择算法
- CLRS 9.2期望为线性时间的选择算法
- 排序及选择算法的java实现(三)计数排序、计数选择、随机选择、最差线性时间选择
- 算法导论:第9章 中位数和顺序统计量_1期望为线性时间的选择算法
- 期望为线性时间的选择算法
- 线性期望时间选择问题C语言
- 中位数和顺序统计,以线性期望时间做选择