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 1 von 3  1 23      
AlexanderBrade

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

array sortieren!!!?

  Alt 5. Jan 2009, 12:49
Hallo, ich habe folgendes Problem:
Ich habe ein array of byte(dynamisch) der Variable B zugeordnet.
Durch setlength(24) habe ich die Variablen B[0], B[1],...B[23] gebildet und diesen Werte zugeordnet.
Dieses Feld habe ich dann sortiert,um die 5 größten Zahlenwerte(1-15) zu bestimmen mit denen ich dann weiterrechne. Bis hierhin klappt alles!
Nun ist es allerdings notwendig von B[0], B[6], B[12] ud B[18] die zwei größten Werte aus dieser Sortierung auszuschließen, da ich mit diesen extern weiterrechne. Die beiden kleineren Werte sollen in der Sortierung allerdings berücksichtigt werden.
Wie kann ich das realisieren, ich hab schon versucht mit einem zweiten array-Feld die 4 Eingaben zu sortieren, allerdings habe ich dann die zwei größten Werte noch lange nicht aus der "anderen" Sortierung ausgeschlossen!

Benötige dringend Hilfe! Bei Fragen wendet euch bitte an mich!
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: array sortieren!!!?

  Alt 5. Jan 2009, 12:56
Hallo Alexander,

ich würde die zwei größten Werte aus B[0], B[6], B[12] ud B[18] suchen
und diese Indizes dann aus dem großen Array entfernen - oder auf einen Minimalwert setzen.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
AlexanderBrade

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

Re: array sortieren!!!?

  Alt 5. Jan 2009, 12:59
und wie suche ich nun die zwei größten werte? ich kann ja dafür nicht extra nen Sortieralgorithmu schreiben!
v.a. wenn ich sortiere werden doch die Feldelemente vertauscht(das größe als erstes, usw.), ich weiß doch dann nicht mehr was B[6] oder B[12] ursprünglich war, oder?
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: array sortieren!!!?

  Alt 5. Jan 2009, 13:03
Zitat von AlexanderBrade:
und wie suche ich nun die zwei größten werte? ich kann ja dafür nicht extra nen Sortieralgorithmu schreiben!
v.a. wenn ich sortiere werden doch die Feldelemente vertauscht(das größe als erstes, usw.), ich weiß doch dann nicht mehr was B[6] oder B[12] ursprünglich war, oder?
.. doch Du kannst anhand der Werte den Index des Ursprungselementes ermitteln.
Im einfachsten Fall die 4 Werte durchsuchen wenn ein Wert gefunden wurde Index merken.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
AlexanderBrade

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

Re: array sortieren!!!?

  Alt 5. Jan 2009, 13:05
Aber wie soll ich die vier Elemente nun sortieren?!? Gibt es für 4 Elemente eine günstigere Variante als einen Sortieralgorithmus?(das größe oder kleinste Element findet man ja leicht, nicht aber das zweitgrößte/zweitkleinste)
P.S. Wie ermittle ich anhand des Wertes den Ursprungindex?
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: array sortieren!!!?

  Alt 5. Jan 2009, 13:13
.. mache Dir ein Array fülle es mit den Werten von b[0] etc.
Sortiere das Array mit einem Sortieralgorythmus Deiner Wahl (bubbleSort)

Angenommen im sortierten Array a (index von 0..3) steht nun der maximale Wert an letzter Stelle,
das wäre a[3] der zweithöchste steht dann auf a[2].

Delphi-Quellcode:
for i:=2 to 3 do
  case a[i] of
    b[0] : ..
    b[6] : ..
    b[12]: ..
    b[18]: ..
  end;
Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
AlexanderBrade

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

Re: array sortieren!!!?

  Alt 5. Jan 2009, 13:18
Was ist a? Das Problem ist, dass ich dann den zweiten BubbleSort Algorithmus einbauen würde!
Den ersten hab ich als Procedure TForm5.BubbleSort(var B: Array of byte); geschrieben!
Ich müsste ja nun eine zweite Prozedur schreiben?!? v.a. wie kann ich nur bestimmte Elemente des arrays für die Sortierung vorsehen?
  Mit Zitat antworten Zitat
Benutzerbild von ghost007
ghost007

Registriert seit: 31. Okt 2005
Ort: München
1.024 Beiträge
 
Delphi 7 Personal
 
#8

Re: array sortieren!!!?

  Alt 5. Jan 2009, 13:20
Hi,
also ich will es dir ja nicht zu einfach machen, aber auf der page hier http://www.algorithm-code.com/wiki/Bubble_sort gibt es zu jedem sortier algo für nahezujede sprache den entsprechenden code. Oben rechts bei related content kannst du auch andere algos anschaun.

MfG - Ghost007

//Edit: Du warst mit deinem letzten post schneller
Christian
Es gibt möglich Dinge und unmöglich Dinge.
Für unmögliche braucht man lediglich etwas länger.
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

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

Re: array sortieren!!!?

  Alt 5. Jan 2009, 13:20
Zitat von AlexanderBrade:
...
Ich müsste ja nun eine zweite Prozedur schreiben?!? v.a. wie kann ich nur bestimmte Elemente des arrays für die Sortierung vorsehen?
Du könntest statt bytes einfach records sortieren, die ein Byte-Feld als Daten haben und ein Boolean-Feld, das angibt, ob dieser Datensatz berücksichtigt werden soll.

Wenn du Bubblesort verwendest, musst du aber schauen, dass du diese Elemente dann überspringst
  Mit Zitat antworten Zitat
AlexanderBrade

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

Re: array sortieren!!!?

  Alt 5. Jan 2009, 14:08
Könnte jemand mal bitte auf meine Frage antworten?!?
Ich möchte folgendes tun: ich will meine Feldvariablen B[0], B[6], B[12] und B[18] sortieren(nicht das ganze array-Feld)!
Dann will ich die zwei größten Elemente, z.B. B[0] und B[12] aus dem dynamischen array(es gibt von B[0] bis B[23])ausschließen bevor ich dieses dann sortiere!(das klappt bereits, aber ohne den Ausschluss der zwei größten Elemente!)
Wie lässt sich dies möglichst unkompliziert hinbekommen?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 18:05 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