原文:舍伍德算法之线性时间选择问题

一.概念引入 设A是一个确定性算法,当它的输入实例为x时所需的计算时间记为tA x 。设Xn是算法A的输入规模为n的实例的全体,则当问题的输入规模为n时,算法A所需的平均时间为。这显然不能排除存在x Xn使得的可能性。希望获得一个随机化算法B,使得对问题的输入规模为n的每一个实例均有。这就是舍伍德算法设计的基本思想。当s n 与tA n 相比可忽略时,舍伍德算法可获得很好的平均性能。 概率算法的一 ...

2020-11-20 11:13 0 398 推荐指数:

查看详情

(Sherwood)算法学习笔记

的每一个实例均有。这就是算法设计的基本思想。当s(n)与tA(n)相比可忽略时,算法可获得很好 ...

Sat Jul 27 23:48:00 CST 2013 2 6740
线性时间选择算法

在一个由 n 个元素组成的集合中,第 i 个顺序统计量(order statistic)是该集合中第 i 小的元素。也就是说,最小值是第 1 个顺序统计量(i = 1),最大值是第 n 个顺序统计量( ...

Thu Jul 24 06:42:00 CST 2014 1 5974
线性时间选择算法

线性时间选择算法 顾名思义,“线性时间选择”就是“选择问题”的“线性时间算法。 1. 选择问题 元素选择问题:给定一个能够线性排序的集合(该集合中有 n 个元素)和 一个整数 k(\(1 \le k \le n\)) ,找出这 n 个元素中第 k 小的元素。 时间下界 ...

Tue Mar 24 07:08:00 CST 2020 2 4840
三种随机化算法算法 拉斯维加斯算法 蒙特卡洛算法

一、算法 作用:为了消除实例与时间复杂度之间的关系; 例如,对于一个快速排序算法,开始时所考虑的是一个有很好平均性能的选择算法,但在最坏情况下对某些实例算法效率较低,此时采用概率方法,将上述算法改造成一个算法,消除实例与时间复杂度之间的关系; 二、拉斯维加斯算法 ...

Thu May 31 17:38:00 CST 2018 0 1165
经典算法总结之线性时间选择

问题: 输入:一个包含n个(不同的)数的集合A和一个数i, 1 <= I <= n。 输出:元素x∈A, 它恰大于A中其他的I – 1个元素(即求第k小数)。 本博文中寻找最大的K个数(TOP K算法)这篇文章也用了本文中的算法,大家可以参考。 三种算法: 1、 直接排序 ...

Fri Aug 17 18:15:00 CST 2012 0 7378
选择中位数-线性时间算法

  本章继续讲一些关于奇淫技巧(算法啦)的做法,对于一个无序数组,我们如何找到其中位数呢?   首先回顾一下中位数的概念:是按顺序排列的一组数据中居于中间位置的数。   1,当前的先决条件是无序数组,那根据原理可以很快想到一种解法,对数组进行遍历,每次找出其最大值、最小值,最终残留的一位或两位 ...

Sun Jan 19 22:40:00 CST 2020 0 1272
最坏情况为线性时间选择算法

算法select可以确认一个有n>1个不同元素的输入数组中第i小的元素。(如果n=1,则select只返回它的唯一输入数值作为第i小的元素。) 1.将输入数组的n个元素划分为n/5(向下取整)组,每组5个元素,则至多只有一组由剩下的n mod 5个元素组成。 2.寻找这n/5(向上取整 ...

Sat Sep 02 22:59:00 CST 2017 0 1194
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM