【发布时间】:2016-03-28 04:31:46
【问题描述】:
我正在尝试比较两种算法,计算数组中两个最大元素的乘法。我决定为此实现这样的算法 - 遍历数组的每个元素 - 找到最高的一个,记住它的索引,然后对其余元素重复相同的操作。
import random
m = 2
n = random.randint(0+m,10+m)
b = [random.randint(0,12) for _ in range(n)]
def MaxPairwiseProductFast(a):
for i in range(0,n):
max_index1 = -1
if (max_index1 == -1) or (a[i] > a[max_index1]):
max_index1 = i
for j in range(0,n):
max_index2 = -1
if (a[j] != a[max_index1]) and ((max_index2 == -1) or (a[j] > a[max_index2])):
max_index2 = j
resutl = a[max_index1]*a[max_index2]
print(resutl)
MaxPairwiseProductFast(b)
此函数将最高元素乘以自身。我不知道为什么会这样。
【问题讨论】:
-
(max_index2 == -1)有什么用???我的意思是为什么首先使用它?它相当混乱。
标签: python arrays python-3.x