Wie finde ich die min-und max-Wert in einem mehrdimensionalen array?

Ich möchten, finden die minimalen und maximalen Werte dieses Arrays. Irgendwann ist es eingestellt (512, 512) UShorts. Eine For-Schleife wäre sehr zeitaufwendig für diese vielen Punkte und bin auf der Suche nach etwas sauberer. SelectMany mir eingefallen, aber ich weiß nicht, wie es zu implementieren.

Dim usResult As UShort(,)

Bearbeiten:
Ich habe versucht

Dim minValue As UShort = UShort.MaxValue
Dim maxValue As UShort = UShort.MinValue
Dim sw As New Stopwatch()
sw.Start()
For i As Integer = 0 To 511 Step 1
    For j As Integer = 0 To 511 Step 1
        minValue = Math.Min(usResult(i, j), minValue)
        maxValue = Math.Max(usResult(i, j), maxValue)
    Next
Next
sw.Stop()
Console.WriteLine(sw.ElapsedMilliseconds)
' This takes 2 to 3 milliseconds
  • Es sei denn, Sie verwenden eine spezielle Datenstruktur, welche hält Daten sortiert oder verfolgt der kleinsten/größten Elemente, müssen Sie eine Schleife durch alle Elemente des Arrays.
  • Ich muss berechnen das min und max so schnell wie möglich (tracking laser beam Bewegungen, wollen möglichst niedrige Zeitauflösung). Die for-Schleife zu sein scheint, die Schnellste Lösung, da die Daten nicht sortiert werden.
InformationsquelleAutor djv | 2013-01-31
Schreibe einen Kommentar