Kleinsten Wert aus Array ermitteln

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von DotNet.

    Kleinsten Wert aus Array ermitteln

    Hallo zusammen,

    ich möchte den kleinsten Wert eines Arrays ermitteln.

    Mit Array.min funktioniert das ja auch sehr gut.

    Problem: Einige Elemente des Arrays sind nicht gefüllt. Also wird als kleinster Wert die 0 ermittelt.

    Wie kann ich dieses Problem lösen?

    Danke im vorraus
    hallo dotnet,

    du hast also ein array mit fester größe.
    sortieren fällt auch aus.

    wie wäre es, wenn du zu beginn das array mit zahlen füllst, die klar deutlich größer sind als alle zahlen die später eingetragen werden.

    gruss

    mikeb69
    am besten du gehst ale variablen in der array durch mit einer schleife. dabei überprüfst du folgendes: wenn die variable in der array größer ist als vorhandene größte variable dann: vorhandene größte variable = wert in der array. und dann weiterlaufen lassen die schleife.
    Für ein Integer-Array:

    VB.NET-Quellcode

    1. Public Function getMinNotZero(a() as Integer)
    2. Dim min as Integer = Integer.MAX_VALUE ' auf max wert setzen, damit sparst du dir die prüfung, ob min schon gesetzt wurde, wenn das array leer ist, kommt aber das zurück -> array darf nicht leer sein.
    3. For each i as Integer in a
    4. if (i <> 0) and (i < min) then min = i
    5. Next i
    6. return min
    7. End Function


    Wenn du kein Integer verwendest (sondern z.B. Double), musst du alle Datentypen ändern und das Integer.MAX_VALUE auch. Wenn du leere Arrays hast, würde ich min mit 0 initialisieren und in der For each-Schleife prüfen, ob min 0 (ungesetzt) ist, verschlechtert aber die Effizienz der Funktion um einiges.