AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

array sortieren!!!?

Offene Frage von "AlexanderBrade"
Ein Thema von AlexanderBrade · begonnen am 5. Jan 2009 · letzter Beitrag vom 6. Jan 2009
Antwort Antwort
Seite 2 von 3     12 3      
angos

Registriert seit: 26. Mai 2004
Ort: Rheine
549 Beiträge
 
Delphi 11 Alexandria
 
#11

Re: array sortieren!!!?

  Alt 5. Jan 2009, 14:40
Zitat von AlexanderBrade:
Könnte jemand mal bitte auf meine Frage antworten?!?
nicht gleich pampig werden. Aufgrund deiner Fragestellung würde ich sagen, hast du schon Lösungsansätze und Antworten auf deine Frage bekommen.
Da das aber für dich nicht der Fall zu sein scheint, würde ich vorschlagen, dass du deine Frage nochmal genauer formulierst und mit dem schon von dir vorhanden Quellcode untermauerst.
Ich weis jetzt auch nicht mehr was du wirklich willst.

Gruß
Ansgar
  Mit Zitat antworten Zitat
guidok

Registriert seit: 28. Jun 2007
417 Beiträge
 
#12

Re: array sortieren!!!?

  Alt 5. Jan 2009, 15:17
Du könntest z.B. folgendes machen:

Delphi-Quellcode:
type

 THilfsArray = record
   Index: Integer;
   Wert: Byte;
 end;

 HilfsArray = Array [0..3] of THilfsArray;
Jetzt hast du ein Array mit vier Elementen, in das du deine vier zu sortierenden Werte (inklusive des Ursprungsindex) eintragen kannst.

Delphi-Quellcode:
HilfsArray[0].Index := 0;
HilfsArray[0].Wert := B[0];
Jetzt rufst du dein Bubblesort auf und sortierts damit das HilfsArray nach HilfsArray.Wert. Jetzt kennst du die beiden größten Werte und auch den dazugehörigen Index im Array B. Hier musst du die beiden Werte nur noch entfernen.

Das ist sicher nicht der intelligenteste Weg, aber es wäre eine Möglichkeit.
  Mit Zitat antworten Zitat
AlexanderBrade

Registriert seit: 14. Dez 2008
189 Beiträge
 
Delphi 2005 Personal
 
#13

Re: array sortieren!!!?

  Alt 5. Jan 2009, 15:35
Muss ich dann einen "zweiten" BubbleSort-Algorithmu schreiben, denn mein bereits vorhandener bezieht sich ja nur speziell auf mein großen array-Feld?
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#14

Re: array sortieren!!!?

  Alt 5. Jan 2009, 15:40
Im Prinzip nicht!
Kommt auf die Implementation der Sortierprozedur an.
Wenn du dieser das Array übergibts, kannst du sie natürlich auch für andere Arrays verwenden.
Ralph
  Mit Zitat antworten Zitat
AlexanderBrade

Registriert seit: 14. Dez 2008
189 Beiträge
 
Delphi 2005 Personal
 
#15

Re: array sortieren!!!?

  Alt 5. Jan 2009, 15:49
Naja, das mit dem array übergeben haut nicht hin, ich bin eigentlich auch froh, dass er mein großes Feld sortiert! Gibt es nicht noch eine andere Variante zu sortieren, da es ja nur 4 Elemente sind und nur die 2 größten gefunden werden müssen?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#16

Re: array sortieren!!!?

  Alt 5. Jan 2009, 15:52
Seid mir nicht böse, aber ich gewinne den Eindruck, dass hier vielleicht ein Denkfehler im Konzept vorliegt, der nun mit Biegen und Brechen durch aufwändigen Code kompensiert werden soll.
@TE: Erklär doch bitte mal die genaue Aufgabenstellung/Zielsetzung, evtl. geht das auch einfacher.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#17

Re: array sortieren!!!?

  Alt 5. Jan 2009, 16:40
Zitat:
Gibt es nicht noch eine andere Variante zu sortieren, da es ja nur 4 Elemente sind und nur die 2 größten gefunden werden müssen?
Warum? SWortieren ist doch nicht so schwer und erfüllt den Zweck. Man könnte jetzt auch irgendwelche Min()/Max() Konstrukte ineinanderschachteln, aber die wären nur unübersichtlich und würden evtl. nicht 100%ig funktionieren...

Zitat von AlexanderBrade:
Muss ich dann einen "zweiten" BubbleSort-Algorithmu schreiben
Zitat von AlexanderBrade:
ich bin eigentlich auch froh, dass er mein großes Feld sortiert!
Hmmm ... was ist so schwer am Bubblesort? Eigentlich ist er einer der einfachsten (wenn auch nicht effizientesten) Algorithmen. Einfach 2 Schleifen, eine Swap-Funktion und eine if-Anweisung - einfacher gehts doch nicht
  Mit Zitat antworten Zitat
AlexanderBrade

Registriert seit: 14. Dez 2008
189 Beiträge
 
Delphi 2005 Personal
 
#18

Re: array sortieren!!!?

  Alt 5. Jan 2009, 18:19
Also die genaune Zielstellung!
Ich habe 24 editboxen, in die Werte(min. 1 bis max. 15) eingetragen werden können.
Die Aufgabe besteht darin diese Werte einzulesen(in das array-Feld mit der Variable B). Das funktionier durch mein dynamisches array of byte. Durch setlength(23) habe ich definiert, dass B[0] die erste Zuordnung bedeutet und B[23] dem Wert der letzten editbox entspricht!
Nun soll mit dem Feld gearbeitet werden!
Die grundsätzliche Aufgabenstellung besteht darin das Feld zu sortieren um anschließend die 5 größten Werte auszulesen und zu addieren! Bis hierhin funktioniert alles!

Nun sollen allerdings nicht kompromisslos die 5 größten Werte ausgegeben werden, d.h. in diesem Fall ist es notwendig aus der ersten "Spalte"(B[0], B[6], B[12], B[18]) die zwei größten Werte zu ermitteln, da diese immer in die Berechnung einfließen sollen. Das heißt der Sortieralgorithmus sucht dann nur noch die "restlichen" 3 größten Werte. Nun kann allerdings B[0] und B[6] bzw. jegliche andere Kombination die größten Werte beeinhalten, diese Werte müssen dann vor dem Sortieren des "Restfeldes" augeschlossen werden, damit sie herausfallen. Wenn B[0] und B[6] diese beeinhalten dürfen B[12] und B[18] aber nicht ausgeschlossen werden, da auch diese Werte berücksichtigt werden müssen.

Der zweite Teil bereitet mir große Probleme...
Bei Fragen bitte schreiben! Gibt es Verständnisprobleme?!?
Alexander.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.015 Beiträge
 
Delphi 12 Athens
 
#19

Re: array sortieren!!!?

  Alt 5. Jan 2009, 18:48
1) vertausche vor dem ersten Sortieren folgende Array-Werte: B[1] <-> B[6], B[2] <> B[12], B[3] <> B[18]

2) sortiere nun die ersten vier Array-Werte B[0]..B[3] (der größte soll in B[0] stehen)

3) sortiere dann die letzten 21 Array-Werte B[2]..B[23] (der größte soll in B[2] stehen)

Nun hast die in B[0]..B[4] die gewünschten Werte stehen.
Uwe Raabe
  Mit Zitat antworten Zitat
Cyf

Registriert seit: 30. Mai 2008
407 Beiträge
 
Lazarus
 
#20

Re: array sortieren!!!?

  Alt 5. Jan 2009, 20:41
Und benutzt bei SetLength 24, wenn du 24 Werte hast.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 17:57 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