AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Probleme mit Bubble-Sort und KO

Ein Thema von whiteshark · begonnen am 5. Mär 2005 · letzter Beitrag vom 6. Mär 2005
Antwort Antwort
Benutzerbild von whiteshark
whiteshark

Registriert seit: 4. Dez 2003
Ort: Cottbus
222 Beiträge
 
Delphi 2005 Personal
 
#1

Probleme mit Bubble-Sort und KO

  Alt 5. Mär 2005, 16:52
Moin Leute,
ich stehe mal wieder vor einem Problem *heul*

Delphi-Quellcode:
function bubble (var a:array of integer):integer;
var j,w,laenge:integer;
begin
 laenge:=form1.Memo1.Lines.Count;
 //setlength(a, laenge);
 for j:=laenge downto 1 do
        begin
        for w:=2 to j do
                begin
                if (a[w-1]>a[w]) then vertausch(a[w-1],a[w]);
                end;// end of w-for-schleife
        end; // end of j-for-schleife
end; // end of function bubble


function aus (var a:array of integer) :integer;
var j:integer;
begin
laenge:=form1.Memo1.Lines.Count;
for j:=1 to laenge do
        begin
        form1.memo2.Lines.Add(inttostr(a[j]));
        end;
end; // end of function aus

Delphi-Quellcode:
procedure TForm1.BubbleButtonClick(Sender: TObject);
var data: array of integer;
var i:integer;
begin
laenge:=memo1.lines.count;
setlength(data,laenge);
//ein(data);
laenge:=form1.Memo1.Lines.Count;
 for i:=1 to laenge do
  data[i]:=strtoint(form1.Memo1.Lines.Strings[i-1]);
von:=gettickcount;
bubble(data);
bis:=gettickcount;
aus(data);
summe:=bis-von;
BubbleLabel.Caption:='';
Das sind meine Proceduren. Wenn ich die nun kompiliere bringt er mir immer einen Fehler. Zufallszahlen gehen, aber wenn ich sortiere ist die letzte Zahl immer eine "18", egal ob die im zu sortieren Teil drin ist oder nicht. Wie kann das passieren? Und wie kann ich Stack-Überläufe verhindern, wenn ich 2-mal 65.000 Zahlen sortiere bringt er mir immer den Fehler "Stack-Überlauf".

Wer kann mir helfen?
Men are born ignorant, not stupid; they are made stupid by education. - Bertrand Russell

I cannot teach anybody anything, i can only make them think. - Socrates
  Mit Zitat antworten Zitat
Benutzerbild von sniper_w
sniper_w

Registriert seit: 11. Dez 2004
Ort: Wien, Österriech
893 Beiträge
 
Delphi 6 Enterprise
 
#2

Re: Probleme mit Bubble-Sort und KO

  Alt 5. Mär 2005, 16:55
Wieso nimmst du nicht QuickSort ?
Katura Haris
Es (ein gutes Wort) ist wie ein guter Baum, dessen Wurzel fest ist und dessen Zweige in den Himmel reichen.
  Mit Zitat antworten Zitat
Benutzerbild von whiteshark
whiteshark

Registriert seit: 4. Dez 2003
Ort: Cottbus
222 Beiträge
 
Delphi 2005 Personal
 
#3

Re: Probleme mit Bubble-Sort und KO

  Alt 5. Mär 2005, 16:57
ja, habe ich ja auch!
Da kommt aber der gleiche Fehler, wie bei Bubble-Sort.

[OT]Es soll ein Programm werden, das 8 Sortierverfahren vergleicht[/OT]
Men are born ignorant, not stupid; they are made stupid by education. - Bertrand Russell

I cannot teach anybody anything, i can only make them think. - Socrates
  Mit Zitat antworten Zitat
Benutzerbild von sniper_w
sniper_w

Registriert seit: 11. Dez 2004
Ort: Wien, Österriech
893 Beiträge
 
Delphi 6 Enterprise
 
#4

Re: Probleme mit Bubble-Sort und KO

  Alt 5. Mär 2005, 19:44
Zitat:
Stack-Überlauf
Das kann nur (99%) deswegen sein, weil die Sortierverfahren Recursion benutzt. Suche dir was im Net, ich weiss, dass es Sortierverfahren (QuickSort auch) auch ohne Recursion gibt, die noch schneller sind, und da gibt es natürlich keine "Stack-Überlauf" Meldung...hoffentlich .
Katura Haris
Es (ein gutes Wort) ist wie ein guter Baum, dessen Wurzel fest ist und dessen Zweige in den Himmel reichen.
  Mit Zitat antworten Zitat
Benutzerbild von kiar
kiar

Registriert seit: 2. Aug 2003
Ort: Aschersleben
1.362 Beiträge
 
Delphi 5 Professional
 
#5

Re: Probleme mit Bubble-Sort und KO

  Alt 5. Mär 2005, 21:13
hallo,

warum guckst du dir nicht die thread demo an, wie es borland gelösst hat. da sind schon mal drei verfahren die funktionieren.


raik
verhältnisse die einem nicht passen,
muss man verändern oder verlassen
  Mit Zitat antworten Zitat
Benutzerbild von Binärbaum
Binärbaum

Registriert seit: 19. Jan 2005
Ort: Elstra
764 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Probleme mit Bubble-Sort und KO

  Alt 5. Mär 2005, 22:12
Der Stack-Überlauf ist einfach zu erklären, wenn man sich solche Code Zeilen wie diese anschaut:
Delphi-Quellcode:
for i:=1 to laenge do
  data[i]:=strtoint(form1.Memo1.Lines.Strings[i-1]);
und sich die Deklaration von data "danebenlegt":
var data: array of integer; Data ist ein dynamischer Array und beginnt deshalb beim Index 0 (wie alle dyn. Arrays bei Delphi) und läuft bis laenge-1. Wenn man also im letzten Durchlauf der Schleife auf data[laenge] zugreifen will, kommt ein (berechtigter) Fehler, weil es dieses Element nicht mehr gibt.

MfG
Binärbaum
There are exactly 10 kinds of people: those who understand binary, and those who don't.
---
"Software reift beim Kunden. Bei Hardware ist es anders: Hardware fault beim Kunden." - Rainer G. Spallek
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#7

Re: Probleme mit Bubble-Sort und KO

  Alt 6. Mär 2005, 08:28
Wozu jetzt zwei Threads ?
Einer reicht doch wohl, zumal in diesem schon die Lösung steht.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Benutzerbild von whiteshark
whiteshark

Registriert seit: 4. Dez 2003
Ort: Cottbus
222 Beiträge
 
Delphi 2005 Personal
 
#8

Re: Probleme mit Bubble-Sort und KO

  Alt 6. Mär 2005, 09:27
@Khabarakh : der zweite Thread war zu einem anderen Fehler und hat sich dann zum Lösungsansatz hingearbeitet!Musste mal die Überschrift lesen

@Binärbaum: Ich bin doch noch ein blutiger Anfänger in Sachen Delphi-Programmierung
Men are born ignorant, not stupid; they are made stupid by education. - Bertrand Russell

I cannot teach anybody anything, i can only make them think. - Socrates
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 11:46 Uhr.
Powered by vBulletin® Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf