原文:算法之线性时间选择(最坏情况下)

线性时间选择 Linear Select :这个名字不太好理解,什么叫线性时间选择 一句话,在线性时间内完成选择。一般情况下是这样的,我们想要找出一个数组中的最大值或最小值,那就只需要一次排列,然后输出第一个或最后一个元素就行了,但如果是要找出一个数组中的第k小的元素呢 在一般情况下,可以用RandomizedSelect方法来找出第k小的元素,平均时间是O n ,但在最坏情况下,所用的时间则是n ...

2014-04-09 12:45 0 6751 推荐指数:

查看详情

最坏情况线性时间选择算法

算法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
线性时间选择算法

的,出现在 i = (n + 1)/2 处。当 n 为偶数时,存在两个中位数,中位数 i = n/2 和 ...

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
冒泡法的算法最佳情况下时间复杂度为什么是O(n)

我在许多书本上看到冒泡排序的最佳时间复杂度是O(n),即是在序列本来就是正序的情况下。 但我一直不明白这是怎么算出来的,因此通过阅读《算法导论-第2版》的2.2节,使用对插入排序最佳时间复杂度推算的方法,来计算冒泡排序的复杂度。 1. 《算法导论》2.2中对插入排序最佳时间复杂度的推算 ...

Tue Sep 15 05:41:00 CST 2015 0 3093
选择中位数-线性时间算法

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

Sun Jan 19 22:40:00 CST 2020 0 1272
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM