Wie Eingaben vergleichen bzw. den kleinsten Wert finden

Dieses Thema im Forum "C/C++" wurde erstellt von Leno, 22.02.2006.

  1. #1 Leno, 22.02.2006
    Zuletzt bearbeitet: 27.04.2007
    Leno

    Leno -

    Dabei seit:
    26.10.2003
    Beiträge:
    139
    Zustimmungen:
    0
    -
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. Lesco

    Lesco segmentation fault

    Dabei seit:
    18.12.2005
    Beiträge:
    67
    Zustimmungen:
    0
    Ort:
    Hessen
    also ich würde es so machen:
    Zahlen[] sei das Array an Zufallszahlen, aus dem du das Minimum finden willst.
    Code:
    int min=0;
    for(int i=0;i<Zahlen.length();++i) {
       if(Zahlen[i] < Zahlen[min]) 
          min=i;
    }
    
    Dann hast du in der Variable min den Index des kleinsten Elements.
    btw: ggf. "Zahlen.length()" mit der Größe des Arrays ersetzen
     
  4. #3 Leno, 22.02.2006
    Zuletzt bearbeitet: 27.04.2007
    Leno

    Leno -

    Dabei seit:
    26.10.2003
    Beiträge:
    139
    Zustimmungen:
    0
    -
     
  5. MTS

    MTS Kaiser

    Dabei seit:
    09.11.2002
    Beiträge:
    1.242
    Zustimmungen:
    0
    Ort:
    NRW, Bochum
    evtl. kannst du die niedrigste Zahl doch schon beim erstellen der Zufallszahlen mitprotokollieren ... also jede neue zahl mit dem bisherigem minimum vergleichen.

    Weniger vergleiche sollte eh nicht gehen ... ob es in Bezug auf die Vertauschungen effizient ist, kann ich dir nicht verprechen ;-)
     
  6. Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    ...oder man definiert als kleinste Zufallszahl "0", dann gehts ohne vergleichen :D
     
  7. Lesco

    Lesco segmentation fault

    Dabei seit:
    18.12.2005
    Beiträge:
    67
    Zustimmungen:
    0
    Ort:
    Hessen
    Wenn du es komplett sortieren und nicht nur das Minimum finden willst, dürfte afaik Quicksort die schnellste Lösung sein.
     
  8. pinky

    pinky König

    Dabei seit:
    11.08.2004
    Beiträge:
    795
    Zustimmungen:
    0
    Der Name ist nicht unbedingt Programm. ;)
    Mit einem Heapsort sollte man bessere Ergebnisse erziehlen können.

    Wenn man aber nur das kleinste Element sucht ist es nicht sinnvoll erst das ganze Feld zu sortieren.
     
  9. rikola

    rikola Foren Gott

    Dabei seit:
    23.08.2005
    Beiträge:
    2.133
    Zustimmungen:
    0
    Falls Du C++ programmierst, wuerde ich die Zahlen in einem vector speichern und std::sort bzw. std::min_element aus <algorithm> benutzen.
    In C wuerde ich einfach durchsuchen, schneller geht es nicht, da Du ja ohnehin jeden Werte einmal abfragen musst. Falls Du sortieren willst, gibt es in stdlib.h zumindest ein qsort.
     
  10. #9 Leno, 23.02.2006
    Zuletzt bearbeitet: 27.04.2007
    Leno

    Leno -

    Dabei seit:
    26.10.2003
    Beiträge:
    139
    Zustimmungen:
    0
    -
     
  11. cremi

    cremi Dude

    Dabei seit:
    15.02.2004
    Beiträge:
    329
    Zustimmungen:
    0
    Ort:
    AUT/Ktn
    verwende doch einfach qsort
     
  12. #11 liquidnight, 23.02.2006
    liquidnight

    liquidnight Routinier

    Dabei seit:
    16.04.2005
    Beiträge:
    430
    Zustimmungen:
    0
    ich hab schon ne weile kein c++ mehr programmiert drum meine frage dazu: in java steckt man die zahlen in einen Integer oder Long und die steckt man dann in ein Treeset. das sortiert beim eintüten gleich und am Ende nimmt man sich einfach das erste Element raus. Gibts da ne vergleichbare Collection-Klasse für C++ ?

    bei den boost-libraries vielleicht ?
     
  13. nic

    nic typeT

    Dabei seit:
    25.01.2006
    Beiträge:
    34
    Zustimmungen:
    0
    In Java gibts genauso Quicksort und co, da brauchst du eigentlich nicht erst das Ganze in nen Tree zu stecken wenn du den spaeter nicht sowieso brauchst...
     
  14. cremi

    cremi Dude

    Dabei seit:
    15.02.2004
    Beiträge:
    329
    Zustimmungen:
    0
    Ort:
    AUT/Ktn
    so einfach gehts doch!!!
    warum bäume und collecton klassen - ist doch viel zu kompliziert
    und schnell genug ist das sicherlich für nur 10^5 werrte.

    doch falls es kompliziert sein soll - warum schreibst du die werte nicht in eine datenbank (am besten oracle) und holst dir dann den kleinsten wert:
    Code:
    SELECT MIN(value) as "most_complicated_solution" FROM random_numbers;
    na ja, spass bei seite - ich würds so wie oben machen
     
  15. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  16. #14 pinky, 24.02.2006
    Zuletzt bearbeitet: 24.02.2006
    pinky

    pinky König

    Dabei seit:
    11.08.2004
    Beiträge:
    795
    Zustimmungen:
    0
    Es ist nicht nur schnell genug, sondern es ist _das_ schnellste. Jeder Sortieralgorithmus (egal ob irgendwelche Baumstrukturen oder so, alle sind im mittel schlechter wie O(n) ) Es gibt nichts schnelleres/einfacheres wie jedes Element genau einmal an zu sehen (evtl. kann man auch schon früher abbrechen wenn man die untergrenze der möglichen Zahlen kennt).

    Wenn die Zahlen im Programmlauf erzeugt oder eingelesen werden und man weiß, dass man nachher garantiert das kleinste Element braucht, dann empfiehlt es sich natürlich diese direkt hier schon zu ermitteln, da ich beim einlesen/erzeugen eh schon jede Zahl in der Hand habe.

    Sortieren lohnt sich nur, wenn ich irgendwann im Programmlauf wirklich die vollkommen sortierte Menge brauche!
     
  17. #15 Xanti, 24.02.2006
    Zuletzt bearbeitet: 24.02.2006
    Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    Angenommen, man will 1000 Zufallszahlen zwischen 0 und 1 erstellen sowie die kleinste Zahl davon bestimmen. Dann kann man 500 Zufallszahlen zwischen 0 und 0.5 sowie 500 Zahlen zwischen 0.5 und 1 erstellen. Für die kleinste Zahl braucht man nur die ersten 500 Zahlen vergleichen (499 Vergleiche). Dies kann man noch verfeinern, also zum Beispiel 100 Zahlen zwischen 0 und 0.1 sowie 900 zwischen 0.1 und 1 (99 Vergleiche) usw...

    Berücksichtigen muss man dann nur noch die Güte der Zufallszahlen bezüglich ihrer Verteilung.

    Gruss, Phorus

    edit: Bei Gleichverteilung sehe ich kein Problem.

    edit2: Es kommt natürlich drauf an, was billiger ist: Vergleich oder Division zweier Zahlen ;)
     
Thema: Wie Eingaben vergleichen bzw. den kleinsten Wert finden
Besucher kamen mit folgenden Suchen
  1. java kleinste zahl ermitteln array

    ,
  2. kleinste zahl ermitteln java

    ,
  3. java array zahlen sortieren niedrigste ausgeben

    ,
  4. index kleinster wert vector c
Die Seite wird geladen...

Wie Eingaben vergleichen bzw. den kleinsten Wert finden - Ähnliche Themen

  1. Terminal(-Eingaben/Ausgaben) klonen ?

    Terminal(-Eingaben/Ausgaben) klonen ?: Moin moin, suche eine passende Anwendung/Möglichkeit für folgendes Vorhaben: Ich möchte mich mittels SSH zum Remote-Rechner einlogen und...
  2. Verschiedene Soundeingaben einstellen?

    Verschiedene Soundeingaben einstellen?: Hi, habe folgendes Problem. Habe gestern ne TV Karte in meinen OpenSUSE 10.2 Rechner eingebaut und oh Wunder, alles leuft sofort. Nur ein...
  3. fedora6 startet nicht da grub eingaben verlangt (???)

    fedora6 startet nicht da grub eingaben verlangt (???): hi@ll da ich mich nicht gut in linux auskenne, bzw. newbie bin, frag ich hier nach. ich hab andere beiträge zu einem ähnlichen thema gefunden,...
  4. Formulareingaben überprüfen

    Formulareingaben überprüfen: Folgendes Problem tritt in meinem Skript auf: Die Überprüfung der Eingaben funktioniert schon super. ABER: Ich möchte es dem User nicht...
  5. Alle Dateien eines Verzeichnisses mit einer anderen Datei vergleichen

    Alle Dateien eines Verzeichnisses mit einer anderen Datei vergleichen: Hallo, ich habe ein Verzeichnis, darin enthalten sind mehrere Dateien. Nun möchte ich alle Dateien (Parameter $1) gegen eine konstante Datei...