📜  DAA最大-最小问题

📅  最后修改于: 2020-12-10 03:53:44             🧑  作者: Mango

最大-最小问题

问题:分析算法以从数组中找到最大和最小元素。

分析:

方法1:如果将通用方法应用于大小为n的数组,则需要的比较次数为2n-2。

方法2:在另一种方法中,我们将问题分为子问题,并找到每个组的最大值和最小值,即现在的最大值。每个组中的一个将与另一个组中的唯一最大值进行比较,而最小与最小值进行比较。

令n =是数组中项目的大小

令T(n)=将算法应用于大小为n的数组所需的时间。在这里,我们将项划分为T(n / 2)。

如上例所示,此处的图2倾向于将最小值与最小值进行比较,将最大值与最大值进行比较。

”最大-最小问题”

T(n)= 2 T ”最大-最小问题” →等式(i)

T(2)= 1,比较两个元素/项目所需的时间。 (时间以比较次数为单位)

”最大-最小问题” →式(ii)

将等式(ii)放入等式(i)

”最大-最小问题”

同样,对每个子问题或解剖结构递归应用相同的过程

{使用递归方法,我们将使用一些停止条件来停止算法}

”最大-最小问题”

递归将停止,当”最大-最小问题” →(式4)

将等式4放入等式3。

”最大-最小问题”

比较次数需要对n个元素/项目应用除法和征服算法= ”最大-最小问题”

比较次数需要对n个元素应用一般方法=(n-1)+(n-1)= 2n-2

从这个例子中,我们可以分析出如何通过使用这种技术来减少比较次数。

分析:假设我们有8个元素大小的数组。

方法1:需要比较(2n-2),(2×8)-2 = 14
方法2:要求最大-最小问题

很明显;我们可以使用适当的技术来减少比较次数(复杂度)。