math.min 和 math.max vs 排序以有效地在列表中查找值

math.min and math.max vs sort for efficiently finding values in a list

在 visual basic 中尝试查找列表中的最大值和最小值时,使用数学是否更有效。min/max 像这样:

Dim highest As Decimal = Decimal.MinValue
Dim lowest As Decimal = Decimal.MaxValue

For Each item As Decimal In listNumber
    highest = Math.Max(highest, item)
    lowest = Math.Min(lowest, item)
Next

或者对列表进行排序并按索引获取值,如下所示:

listNumber.Sort()
listNumber(0)
listNumber(99)

看起来使用 min/max 是首选方法,但它们似乎都适用于 100 个十进制值的列表,一个比另一个更有效,还是这只是 6 对半十几样东西?

我试图找到一种在 Visual Studio 2013 Express 中对此进行基准测试的方法,但看起来我必须升级到 Visual Studio Ultimate,我错过了什么吗?

对项目进行排序意味着您不仅会找出最大和最小的项目,还会根据价值排列介于两者之间的所有项目。虽然做起来很简单,但它仍然是额外的工作,你不必让电脑来做。

您可以使用 MinMax 方法来获取您想要的内容,就像对列表进行排序一样简单:

Dim highest As Decimal = listNumber.Min()
Dim lowest As Decimal = listNumber.Max()