《算法导论》读书笔记--顺序量选择
来源:互联网 发布:mac机械键盘 编辑:程序博客网 时间:2024/06/18 10:12
在一个由n个元素组成的集合中,第i个顺序统计量是该集合中第i小的元素。
求数组A[p..r]的第i个顺序量:
RADOMIZED_SELECT(A,p,r,i)1 if p == r2 return A[p]3 q = RANDOMIZED_PARTITION(A,p,r)//随机化的快速插入排序,与插入排序不同的是,其“主元”的下标是调用random在区间内随机产生,根据返回值p分组4 k = q - p + 1 //k的值为q在数组中的位置5 if i == k 6 return A[q] 7 else if i < k 8 return RANDOMIZED_SELECT(A,p,q-1,i)9 else return RANDOMIZED_SELECT(A,q+1,r,i-k)//i-k是因为新数组的初始索引下标为原数组的q+1,所以i需要减去前面的k个元素
第1行检查递归的基本情况,即A[p..r]中只包括一个元素。在这种情况下,i必然等于1,返回A[p]的值。
第3行进行随机插入排序,q为主元的位置,将整个数组分为两个部分。
第5行i为所要查找的顺序量,k为主元A[q]在整个数组中的位置,两个进行比较,如果相同,则A[q]即为所要查找的顺序量
第7行,如果i小于k,则证明i位于k的左侧,A[i]的值小于主元,在左侧继续进行递归查找,范围为[p,q-1]
第8行,如果i大于k,则证明i位于k的右侧,A[i]的值大于主元,在右侧继续进行查找,范围为[q+1,r]
0 0
- 《算法导论》读书笔记--顺序量选择
- 【算法导论】中位数和顺序统计量之选择算法
- 算法导论读书笔记(9)中位数和顺序统计量
- 算法导论(4) 顺序统计量
- 算法导论-第九章-中位数和顺序统计量:最坏情况为线性时间的选择算法C++实现
- 算法导论:第9章 中位数和顺序统计量_1期望为线性时间的选择算法
- 算法导论:第9章 中位数和顺序统计量_2最坏情况为线性时间的选择算法
- [算法导论读书笔记]活动选择问题
- MIT:算法导论——6.中位数和顺序统计量:随机快排应用==>随机选择
- 《算法导论》读书笔记之第9章 中位数和顺序统计学 最坏情况是线性时间的选择算法
- 算法导论第十四章利用红黑树查找顺序统计量
- [算法导论]第九章《中位数和顺序统计量》
- 算法导论第九章-中位数和顺序统计量
- 算法导论思考题9-3小顺序统计量问题
- 算法导论笔记:09中位数和顺序统计量
- 算法导论—中位数与顺序统计量
- 算法导论 第九章:顺序统计量(Order Statistic)
- 排序和顺序统计量(算法导论)
- 从iOS手雷出发-总结iOS多设备UI适配规范方案
- socket高级编程
- 接口测试-browsermob-proxy
- OVAL
- sysbench 0.5 性能测试工具使用手册
- 《算法导论》读书笔记--顺序量选择
- 贾扬清分享_深度学习框架caffe
- ajax传递json字符串写法
- python 写 yml文件
- 【转】C++命名规范
- dns option view 块配置详解
- copy_from_user
- 解决webdriver定位#document内元素
- linux 手动安装gcc