- 315
- 0
- 约3.89千字
- 约 16页
- 2019-04-18 发布于安徽
- 举报
* 给定线性序集中n个元素和一个整数k,1≤k≤n,要求找出n个元素中第k小的元素,k=(n+1)/2称为中位数。 线性时间选择 特殊情况下的线性时间算法: 1、最大、最小元素:线性扫描,O(n) 2、k≤n/logn或k≥n-n/logn :堆排序算法O(n+klogn)=O(n) 一般情况下的选择问题如何解决? 用快速排序算法思想,对输入数组进行递归划分,不同的是它只对划分出的子数组之一进行递归处理。 * private static Comparable randomizedSelect(int p,int r,int k) { if (p==r) return a[p]; int i=randomizedpartition(p,r); j=i-p+1; // i左边的元素个数 if (k=j) return randomizedSelect(p,i,k); else return randomizedSelect(i+1,r,k-j); } 在最坏情况下,算法randomizedSelect需要O(n2)计算时间。 但可以证明,算法randomizedSelect可以在O(n)平均时间内找出n个输入元素中的第k小元素。 线性时间选择 * 如果能在线性时间内找到一个划分基准,使得按这个基准
您可能关注的文档
最近下载
- 2026年最新蜀道集团笔试题目及答案.doc VIP
- 新电子税务局培训课件(20240510)全国统一规范电子税务局试点纳税人培训.pptx VIP
- 智磨坊口算题出题打印-整数-小数-分数 (1).pdf VIP
- GB_T 15558.1-2023 燃气用埋地聚乙烯(PE)管道系统 第1部分:总则.pdf VIP
- 《智能体应用安全基本要求》标准立项修订与发展报告.docx VIP
- DG∕TJ 08-2123-2025 盾构法隧道结构服役性能鉴定标准.pdf VIP
- 电能计量装置基础知识演示幻灯片.pdf VIP
- 缠中说禅 教你炒股108讲座.doc
- 挡土墙施工安全施工方案(3篇).docx VIP
- 2026年高中历史材料题专项真题及答案.docx VIP
原创力文档

文档评论(0)