AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi aus einem Array die kleinste Zahl herausfinden
Thema durchsuchen
Ansicht
Themen-Optionen

aus einem Array die kleinste Zahl herausfinden

Ein Thema von gangs-taas · begonnen am 4. Sep 2009 · letzter Beitrag vom 9. Jul 2013
Antwort Antwort
Seite 2 von 6     12 34     Letzte »    
gangs-taas

Registriert seit: 24. Mär 2009
364 Beiträge
 
#11

Re: aus einem Array die kleinste Zahl herausfinden

  Alt 4. Sep 2009, 17:40
danke
ich habs mit ner schleife gelöst
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.130 Beiträge
 
Delphi 12 Athens
 
#12

Re: aus einem Array die kleinste Zahl herausfinden

  Alt 4. Sep 2009, 17:54
zum Thema sortuert = schneller

wenn das Array vorher schon sortiert ist, dann isses natürlich schneller
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#13

Re: aus einem Array die kleinste Zahl herausfinden

  Alt 4. Sep 2009, 19:33
Zitat von himitsu:
wenn das Array vorher schon sortiert ist, dann isses natürlich schneller
Woher weiss man das?
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#14

Re: aus einem Array die kleinste Zahl herausfinden

  Alt 4. Sep 2009, 19:38
Zitat von alzaimar:
Woher weiss man das?
Indem man es beim Einfügen schon sortiert hält

Aber genug der Theorie. Gesetz dem äußerst unwahrscheinlichen Fall, dass man tatsächlich nur ein allereinziges Mal das Minimum haben will, ist lineare Suche wirklich das Beste
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#15

Re: aus einem Array die kleinste Zahl herausfinden

  Alt 4. Sep 2009, 19:56
Zitat von Meflin:
Zitat von alzaimar:
Woher weiss man das?
Indem man es beim Einfügen schon sortiert hält
Das ist dann auch langsamer als mal eben in einem unsortierten Array zu suchen
Zitat von Meflin:
Gesetz dem äußerst unwahrscheinlichen Fall, dass man tatsächlich nur ein allereinziges Mal das Minimum haben will
Wieso sollte ich öfter das Minimum eines Arrays ermitteln? Ändern tut es sich doch eh nicht

Nun zur Theorie:
Wenn ich eine listenartige Datenstruktur inklusive Kenntnis des kleinsten/größten Elements benötige, werde ich meine Basisstruktur u.a. danach aussuchen, ob ich die Elemente sortiert benötige. Wenn nicht, und Löschoperationen selten sind, dürfte eine unsortierte Liste eine gute Wahl darstellen. Ansonsten empfehle ich eine Skiplist, die hier im Gegensatz zu einer sortierten Liste stets optimale Ergebnisse liefert. So sind so gut wie alle Operationen näherungsweise O(1), wohingegen eine sortierte Liste beim Einfügen und Löschen einen Aufwand O(n) und beim Suchen O(log n) aufweist. Nicht besonders, wenn Du mich fragst.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#16

Re: aus einem Array die kleinste Zahl herausfinden

  Alt 4. Sep 2009, 19:58
Zitat von Meflin:
Zitat von alzaimar:
Woher weiss man das?
Indem man es beim Einfügen schon sortiert hält
Kommt aber darauf an, wie man das macht. Wenn man quasi Insertion-Sort verwendet, ist es wahrscheinlich langsamer, weil die Elemente imemr wieder verschoben werden müssen. Und natürlich wird auch dabei das Array durchgescannt, mit dem Unterschied dass man hier eine binäre Suche verwenden kann, was aber nur bei größeren Mengen an Daten einen Geschwindigkeitsvorteil bringt.
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#17

Re: aus einem Array die kleinste Zahl herausfinden

  Alt 4. Sep 2009, 20:01
Zitat von NamenLozer:
Wenn man quasi Insertion-Sort verwendet, ist es wahrscheinlich langsamer
Wieso auch nicht gleich BogoSort
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.130 Beiträge
 
Delphi 12 Athens
 
#18

Re: aus einem Array die kleinste Zahl herausfinden

  Alt 4. Sep 2009, 20:48
Und wenn sich die Werte im Array ändern?

Dann gibt es für's Hinzufügen 2 Wege

- entweder sortiert hinzufügen
- oder beim Hinzufügen direkt mit den zwischengespeicherten Min- und Max-Werten vergleichen und diese so aktuell halten
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Wolfgang Mix
Wolfgang Mix

Registriert seit: 13. Mai 2009
Ort: Lübeck
1.222 Beiträge
 
Delphi 2005 Personal
 
#19

Re: aus einem Array die kleinste Zahl herausfinden

  Alt 5. Sep 2009, 11:50
Ergänzung zu Post 8:

Hier eine bessere Testvarinte:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
 var zahl : array[1..1000] of integer;
  i,min,merker:integer;
begin
  randomize;
   for i:= 1 to 1000 do
   begin
     zahl[i]:=random(10000)+1;
   end;
   min:=1000;
   for i:= 1 to 1000 do
   begin
     if zahl[i] < min then
     begin
       min:=zahl[i];
       merker:=i;
     end;
   end;
   edit1.Text:=IntToStr(min);
   edit2.Text:=IntToStr(merker);
end;
Gruß

Wolfgang
Wolfgang Mix
if you can't explain it simply you don't understand it well enough - A. Einstein
Mein Baby:http://www.epubli.de/shop/buch/Grund...41818516/52824
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#20

Re: aus einem Array die kleinste Zahl herausfinden

  Alt 5. Sep 2009, 12:49
Zitat von Wolfgang Mix:
Hier eine bessere Testvarinte:
Und hier eine kürzere Testvariante:
KleinsterWert := Math.MinIntValue(zahlArray);
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 6     12 34     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz