用随机算法求第k小项
6页1、1, 问题描述设A1,n是一个有n个数组成的无序数列,寻找其第k小元素就是将A按照非递减的顺序排列后,新序列中的第k个元素。寻找第k小元素最直接的方法就是直接将A进行排序,然后取出第k个元素,但是此类方法时间复杂度较高,至少需要(nlogn)时间,因为基本所有已学的排序方法在最坏情况下都需要这么多时间。 在第三章中老师课上教导了利用分治法求第k小元素的算法,其时间复杂度为O(n)。其基本思想如下:在分治法递归调用的每一个划分步骤中都将舍弃一定比例的元素,而在剩余元素中寻找目标。故在我的理解中这种分治法的性能主要依赖于每次递归调用能舍去的元素的比例,以及为舍弃这些元素所花费的代价。在之后的学习中,我们又接触到了随机算法,不由思考,分治法中的划分可以不可以通过随机算法来随机选择一个位置,然后根据这个位置进行舍弃序列中的元素,有没有办法改进算法。2, 随机选择算法Algorithm: RandomSelect (Alow, high, k)输入:数组Alow,.high和整数k,1 k high-low+1输出:Alowhigh中的第k小元素v random(low,high)x Av将Al
2、owhigh分成三部分 A1a|a x /(n)case | A1 | k : return RandomSelect(A11, |A1|, k) | A1 |+| A2 | k : return x | A1 |+| A2 | k: return RandomSelect(A31,|A3|, k-|A1|-|A2|)end case该部分算法ppt与书上已经提到,其时间复杂度的期望比较次数C(n)4n,此外每个元素与基准元素x至少比较一次。故C(n)n及nC(n)4n,故时间复杂度为(n)这部分书上与ppt上已有证明就不过多论述了3, 对以上随机算法的一种思考改进分析以上算法不难发现,其先随机选择一个位置v,然后根据v进行对元素的舍弃,所以每次舍弃不同个元素的概率是相同的,我就思考可不可以让选中舍弃较多元素的位置的概率更大,让算法有更大几率舍弃掉较多的元素。 算法的想法如下:如果随机选择一个位置的元素进行比较,每个位置的可能性是均等的,取到的数值可能最大、最小,也可能中间,如果是最大最小的情况,每次舍弃的数值就只能有一个,只有尽可能的取大小排在中间的数值,才能舍去较大的元素,故我思考
《用随机算法求第k小项》由会员汽***分享,可在线阅读,更多相关《用随机算法求第k小项》请在金锄头文库上搜索。
沪教版五年级数学上学期期末考试知识点检测
习作教学应向生活开放
2023年生产管理部文员工作总结(精选多篇)
小学副校长工作职责(9篇)
小班教师个人工作计划
初中学校关工委工作总结
小班数学小熊糖果店
小学学校校本研修计划范本(6篇).doc
经典实用汽车租赁合同电子版(三篇).doc
2021-2022年三年级上册第5课《日记二则》word教案
写字楼租赁合同示范文本(DOC 25页)
山东省滕州市滕西中学九年级英语下学期第一次质量检测试题答案不全
注册会计师《审计》考前冲刺密押卷含答案87
初中数学易错题(全国通用-上海专用-含参考答案)
党风廉政建设十不准
财务试用期期间的工作总结(2篇).doc
小韭兰苗木购买合同
承包合同范文7篇
【新教材】高考化学二轮基础演练:3.2.1水的电离和溶液的酸碱性含答案
2014广州小升初语文基础复习
2023-03-22 16页
2024-01-21 17页
2023-12-17 2页
2024-01-02 8页
2023-09-30 11页
2022-11-13 7页
2023-01-08 3页
2022-12-27 15页
2022-10-05 13页
2023-10-01 20页