AGB  ·  Datenschutz  ·  Impressum  







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

Quicksort (Ausgabe)

Ein Thema von Trouble_Maker · begonnen am 9. Mär 2004 · letzter Beitrag vom 9. Mär 2004
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Trouble_Maker
Trouble_Maker

Registriert seit: 30. Jan 2003
244 Beiträge
 
Delphi 6 Personal
 
#1

Quicksort (Ausgabe)

  Alt 9. Mär 2004, 18:14
Hiho hab mal wieder ein Problem:

hier meine Source vom Quicksort:
Delphi-Quellcode:
procedure QuickSort();
var i,j,d,r,h1,h2: integer;
    data: array[1..maxelements] of integer;
begin
  i:=d;
  j:=r;
  h1:=data[(i+j) div 2];
  while i<j do begin
    while data[i] < h1 do i:= i+1;
         while data[j] > h1 do j:= j-1;
  end;
  if i<=j then
    begin
      h2:=data[i];
      data[i]:= data[j];
      data[j]:= h2;
      i:= i+1;
      j:= j+1;
    end
  else exit;
  if d<j then Quicksort() else exit;
  if i<r then Quicksort() else exit;

form1.memo1.lines.add(inttostr(data));
end;
Aber jetzt meckert der bei der letzen Zeil!
[Fehler] Unit1.pas(269): Es gibt keine überladene Version von 'IntToStr', die man mit diesen Argumenten aufrufen kann

hab kA was das zu bedeuten hat, und wie ich jetzt meine sortieren elemente (data) in ein memo schreiben soll ?
kann mir jemand helfen ?

thx

Trouble_Maker


PS: Hab bisher nur wenig erfahrungen mit eigenständigen Prozeduren
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Quicksort (Ausgabe)

  Alt 9. Mär 2004, 18:16
Data ist ein Array of Integer bei dir. Die letzte Zeile müsste so lauten:
Delphi-Quellcode:
for i := 0 to lenght(data) - 1 do
  Form.Memo1.Lines.Add(IntToStr(data[i]);
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Markus K.

Registriert seit: 26. Jan 2004
Ort: Halle
346 Beiträge
 
Delphi 2005 Personal
 
#3

Re: Quicksort (Ausgabe)

  Alt 9. Mär 2004, 18:18
Hi Trouble_Maker,
ich glaube es liegt daran dass du versuchst ein Array in einen String umzuwandeln.
Du hattest ja oben data als ein Array of Integer definiert. Dann müsstest du die Integerzahlen wiefolgt auslesen.
form1.memo1.lines.add(inttostr(data[{nummer}])); Tschüß Markus
  Mit Zitat antworten Zitat
Benutzerbild von Trouble_Maker
Trouble_Maker

Registriert seit: 30. Jan 2003
244 Beiträge
 
Delphi 6 Personal
 
#4

Re: Quicksort (Ausgabe)

  Alt 9. Mär 2004, 18:25
hm...
ja theoretisch habt ihr beide Recht.

Aber bekomme bei beiden eine Exception, wenn ich im Programm den Quicksort aufrufe!

Bei beiden "Versionen" zeigt er dann danach mitm grünen Pfeil auf h1:=data[(i+j) div 2];

was bedeutet das und wo ist der Fehler ?


cu Trouble_Maker

PS: schonmal danke für die schnelle Antwort
  Mit Zitat antworten Zitat
Benutzerbild von Trouble_Maker
Trouble_Maker

Registriert seit: 30. Jan 2003
244 Beiträge
 
Delphi 6 Personal
 
#5

Re: Quicksort (Ausgabe)

  Alt 9. Mär 2004, 19:37
hi...
will ja nicht drängeln oder so!
aber unser Info-Leher guggt sich das morgen an und gibt Noten drauf *heul*

Hab echt su ewig rumprobiert und im I-net gesucht! Aber nix passendes gefunden!

wär echt sau nett, wenn mir jemand heute noch helfen könnte!

big thx


Trouble_Maker
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Quicksort (Ausgabe)

  Alt 9. Mär 2004, 20:01
Was soll das eigentlich:
Delphi-Quellcode:
  i := d;
  j := r;
In i und j steht das drin, was zufällig in d und r drinsteht. Wie stellst du sicher, dass da was sinnvolles zugewieden wird? Desweiteren gibt es in der Tutorial Sparte auch ein umfassendes Tutorial zu den Sortieralgorithmen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von n00b_on_knees
n00b_on_knees

Registriert seit: 5. Apr 2003
128 Beiträge
 
#7

Re: Quicksort (Ausgabe)

  Alt 9. Mär 2004, 20:04
hmm, vielleicht weil i und j undefiniert sind? und weil diese Werte dann größer oder kleiner sind, als der Wertebereich von Data..ist natürlich nur ne Überlegung.
Against TCPA & And I think we should live our dreams
  Mit Zitat antworten Zitat
Benutzerbild von n00b_on_knees
n00b_on_knees

Registriert seit: 5. Apr 2003
128 Beiträge
 
#8

Re: Quicksort (Ausgabe)

  Alt 9. Mär 2004, 20:06
Zitat von Luckie:
Was soll das eigentlich:
Delphi-Quellcode:
  i := d;
  j := r;
In i und j steht das drin, was zufällig in d und r drinsteht. Wie stellst du sicher, dass da was sinnvolles zugewieden wird? Desweiteren gibt es in der Tutorial Sparte auch ein umfassendes Tutorial zu den Sortieralgorithmen.
Huch, deinen Post wohl genau gleichzeitig gepostet..naja bei mir hat das etwas lange gedauert bist das ganze abgesendet war.

Sortieralgorithmen..ich hatte mich da mal bezüglich des Mergesort erkundigt..mein Professor meinte, es sei eine unglückliche Version des Quicksort!
Against TCPA & And I think we should live our dreams
  Mit Zitat antworten Zitat
Markus K.

Registriert seit: 26. Jan 2004
Ort: Halle
346 Beiträge
 
Delphi 2005 Personal
 
#9

Re: Quicksort (Ausgabe)

  Alt 9. Mär 2004, 20:10
Ich habe mir die Funktion nochmal angeschaut, allerdings weiß ich ned was du so richtig tust
Wieso übergibst du eigentlich nie Variablen? Schon beim Start übergibst du keine und beim erneuten aufrufen der QuickSort Prozedur übergibst du auch keine.
Zu dem müsste der Tausch mit in die While Schleife einbezogen werden. Und was möchtest du mit Exit erreichen?
Zum anderen müsstest du das j beim Tausch um 1 verringern und nicht um 1 erhöhen.

Tschüß Markus
  Mit Zitat antworten Zitat
Benutzerbild von Trouble_Maker
Trouble_Maker

Registriert seit: 30. Jan 2003
244 Beiträge
 
Delphi 6 Personal
 
#10

Re: Quicksort (Ausgabe)

  Alt 9. Mär 2004, 20:16
hm...
tja... also das mit dem i := d; und so das steht alles aufm Zettel, den wir von unserm Info-Lehrer bekommen haben! Das warn Artikel aus der c´t von 1988 über Sortiermöglichkeiten *g*
Daher stammen auch die exit´s ... weils da auch so ist...
weiss auch nich so recht.. naja egal!
Hab jetzt keine Lust mehr auf schule ^^

bis dann


Trouble_Maker
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 04:31 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