Announcement

Collapse
No announcement yet.

Sortierung mehrerer Werte

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Sortierung mehrerer Werte

    Hallo Zusammen,

    ich habe folgendes Problem:
    ich habe mehrere Felder (Anzahl 6) mit Werten befüllt. Mich interessiert nun der kleinste und der grösste Werte. Wie ist sowas möglich?
    Ich hab schon überlegt alles in ein Array zu schieben und dann nach einer Sortier-Funktion gesucht. War aber erfolglos.

    Geht doch sicher ganz einfach, oder?

    Gruß und Danke
    Gogat

  • #2
    Hallo,

    Array.GetUpperBound(...) und Array.GetLowerBound(...) muessten dir die gewuenschten Resultate liefern.
    *-- robert.oh. --*

    Comment


    • #3
      Das Array ist aber nicht sortiert, sprich der grösste Werte kann viell. in Array(3) vorkommen.

      Wie muss ich das dann aufrufen bzw. was muss in die Klammer nach GetUpperBound?

      Comment


      • #4
        Mit 'Array.Sort(...)' koenntest du das Array vorher sortieren.

        Ich weiss nicht genau wie du die Werte weiterbearbeitest, welche .NET Version du verwendest, oder in wie weit diese bereits im Code 'verankert' sind, aber man koennte uU ab .NET 2.0 auch einen Generic, wie zB eine 'SortedList' verwenden - waere "typesafe".

        Beispiel - ist zwar C#, aber die Idee bleibt die selbe:
        Code:
        System.Collections.Generic.List<int> list = 
            new System.Collections.Generic.List<int>();
        list.Add(0);
        list.Add(9);
        list.Add(2);
        list.Add(1);
        list.Sort();
        int x = list[0];
        int y = list[list.Count - 1];
        x beinhaltet den kleinsten und y den groessten Wert.

        Vielleicht hilft dir das weiter.
        *-- robert.oh. --*

        Comment


        • #5
          ich verwende VB2005

          Funktioniert aber leider nicht, wie du das meinst. Ich poste mal mein Coding.

          Code:
          Dim arr(5) as Double
          arr(0) = "200"
          arr(1) = "210"
          arr(2) = "205"
          arr(3) = "209"
          arr(4) = "202" 
          arr(5) = "208"
          Die Anweisung arr.sort() funktioniert bereits schon nicht mehr.
          Fehlermeldung: Fehler bei der Überladungsauflösung, da keine zugreifbare "Sort" diese Anzahl von Argumenten akzeptiert.

          Comment


          • #6
            Denk ich mir, dass 'arr.sort()' nicht funktioniert, probiers mal damit:

            Array.Sort(arr)
            *-- robert.oh. --*

            Comment


            • #7
              ja klar, asche auf mein haupt. Habs grad selber bemerkt.

              Comment


              • #8
                Soll vorkommen

                Funktionierts auf diese Weise?
                *-- robert.oh. --*

                Comment


                • #9
                  aber wie ermittle ich nun den Min- und den Max-Wert bzw. wenn Nullwerte enthalten sind, sollen diese natürlich auch nicht berücksichtigt werden.

                  Comment


                  • #10
                    Wie waere es, wenn du mit einer FOR-Schleife durch das Array gehst?
                    - einmal von 0 bis Arraylaenge (nach oben durchgehen) fuer den Min.Wert
                    und
                    - einmal von Arraylaenge bis 0 (nach unten durchgehen) fuer den Max.Wert

                    Du gehts das Array durch, pruefst auf NULL und wenn es kein NULL-Wert ist verlaesst du die FOR-Schleife, sodass du nicht jedesmal das gesamte Array durchgehen musst.

                    Was haeltst du davon?
                    *-- robert.oh. --*

                    Comment


                    • #11
                      die Idee hatte ich auch schon, ist halt etwas aufwendig. Gibts da keine vordefinierten Methoden o.ä.?

                      Ansonsten trotzdem danke für deine Unsterstützung!

                      Comment


                      • #12
                        Naja eben mit 'Array.GetUpperBound(...)' oder 'Array.GetLowerBound(...)' - aber wie es da mit NULL Werten ausschaut kann ich dir leider nicht sagen.
                        *-- robert.oh. --*

                        Comment

                        Working...
                        X