对于配对操作,我很难理解大 O 符号。问题很简单——为数组中给定的数字列表生成所有可能的对。
我的第一个猜测是有一个嵌套的 for/foreach 循环并生成对。这很容易,我得到每个 n,我分析 n 个其他数字,这给了我 n^2 的复杂性。
现在,如果我尝试进一步优化它并说 (1,4) 与 (4,1) 相同,那么对于像 1,2,3,4,5 这样的排序数组。我只以这种方式在嵌套的 for 循环中运行配对操作
for (i =0; i < count; i++) {
for (j = i + 1; j < count - 1; j++)
}
}
在这种情况下,我只运行数组 < n^2 次。对于 7 个数字的样本大小,我运行循环 21 次以生成对。我知道这不可能是一个 log-n 运算,我很想说这个运算收敛到 n^2,但我从我的数学或理论课上记不住足够明确地回答这个问题。我该如何解决这个问题?
背景:我接受了一个类似问题的采访,这源于我和朋友的一次争论,如果一个列表中的配对操作可以比 n^2 更好。