0
在嘗試查找列表中最大和最小值時的visual basic中,使用math.min/max這樣的效率更高:math.min和math.max vs排序以有效查找列表中的值
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)
它看起來像使用最小值/最大值是首選的方法,但他們都似乎工作不夠好名單100個十進制值,比另一個更有效率,或者這只是一個6比6的事情?
我試圖找到一種方法來在Visual Studio 2013 Express中進行基準測試,但看起來我必須升級到Visual Studio Ultimate,我錯過了什麼嗎?
_「我試圖找到一種方法,基準本在Visual Studio 2013 Express,但它看起來我必須升級到Visual Studio Ultimate,我錯過了什麼嗎?「_你只需要使用'System.Diagnostics.Stopwatch'和一個有意義的測試。但我可以告訴你,你是微型優化。使用'listNumber.Min()'和'listNumber.Max()'這些最易讀和可維護的代碼。 – 2015-04-05 21:54:08
@TimSchmelter謝謝,這在一般情況下非常有用,但看起來在這種情況下,它們都以1ms運行 – apaul 2015-04-05 22:05:17
@ apaul34208:編譯器可能會爲每種方法生成類似的輸出。您的方法和內置方法之間的任何差異都可以用更大的樣本量來實現。但是,如果可能的話,您應該使用內置方法,因爲它們更適合於這些情況。你不應該嘗試微觀優化,除非你的用例以某種方式證明它的合理性。 – grovesNL 2015-04-05 22:11:30