Helpdesk
Menschen Wissenschaft Politik Mystery Kriminalfälle Spiritualität Verschwörungen Technologie Ufologie Natur Umfragen Unterhaltung
weitere Rubriken
PhilosophieTräumeOrteEsoterikLiteraturAstronomieHelpdeskGruppenGamingFilmeMusikClashVerbesserungenAllmysteryEnglish
Diskussions-Übersichten
BesuchtTeilgenommenAlleNeueGeschlossenLesenswertSchlüsselwörter
Schiebe oft benutzte Tabs in die Navigationsleiste (zurücksetzen).

Mergesort Processing

92 Beiträge ▪ Schlüsselwörter: Processing, Mergesort ▪ Abonnieren: Feed E-Mail

Mergesort Processing

25.04.2010 um 02:45
OK, das Programm muss noch umbenannt werden, da es mit irgendeiner wilden Nummer gespeichert worden ist...

(compiliert und erstellt ist das ganze übrigens mit win lcc64)


melden

Mergesort Processing

25.04.2010 um 11:32
@Lufton
@interpreter
@moredread

Asche auf mein Haupt - Ihr habt natürlich recht gehabt und ich habe einen ganz blöden Fehler gemacht.

Ich verrate aber nicht, welchen :D

Trotzdem habe ich noch Einwände gegen die Funktion, obwohl sie einwandfrei funktioniert:
Meint Ihr, es ist wirklich nötig, das Array vor der Merge - Phase zu splitten? Es reicht doch auch, das Array zuers in 2, dann 4, 8, 16, 32 und so weiter Blöcken zu mischen, und das erfordert wesentlich weniger Durchläufe.

Ich poste heute Abend, wenn ich wieder am Computer sitze, ein Beispiel.


melden

Mergesort Processing

25.04.2010 um 12:20
Das Array wird nicht gesplittet... Alle Funktionen greifen auf das gleiche zu.

Es wird ein Zeiger übergeben und nicht das Array.

Aber du meinst wahrscheinlich den iterativen Ansatz. Ob der schneller ist, hängt von der Gestaltung ab.


melden

Mergesort Processing

25.04.2010 um 13:32
@interpreter
Zitat von interpreterinterpreter schrieb:in C# sind die Arrays Objekte und keine Zeiger auf Speicherplätze. So werden sie zu lokalen Variablen.
Das ist falsch. In C# macht es einen Unterschied, was ein Reference-Type und ein Value-Type ist. Ein Array ist immer ein Reference-Type, unabhängig davon, welchen Datentyp er speichert.

Du glaubst doch nicht ernsthaft, dass für jeden Aufruf in C#, bei dem ein Array übergeben wird, eine komplette Kopie dieses angefertigt wird? ;)

Der Algorithmus in deinem PDF sollte in C# genauso laufen (wenn man ihn ein wenig an den Syntax anpasst und die Fehler beseitigt), hier wird ja keine Pointerarithmetik verwendet. Selbst wenn: Abgesehen davon, dass Pointerarithmetik in C# auch möglich ist, wäre es ein Leichtes einfach einen weiteren Parameter zu übergeben.
Zitat von interpreterinterpreter schrieb:Das sortieren eines Arrays wäre mit einer Alles-Ist-Objekt-Sprache wesentlich schwieriger zu realisieren.
Nö... ;)


melden

Mergesort Processing

25.04.2010 um 14:53
@Quimbo

Auch wenn mir deine arrogante Art nicht gefällt, gebe ich zu das du bezüglich der Referenztypen recht hast. Ist zwar btw. nicht MEIN PDF aber es müsste funktionieren.


melden

Mergesort Processing

25.04.2010 um 21:11
@Quimbo
Das PDF ist von mir. Wo habe ich einen Fehler gemacht? Immer heraus mit der Sprache... (will ja die arme Kisa nicht völlig verwirren und ihr Unsinn erzählen)


1x zitiertmelden

Mergesort Processing

25.04.2010 um 23:37
Zitat von LuftonLufton schrieb:Das PDF ist von mir. Wo habe ich einen Fehler gemacht? Immer heraus mit der Sprache... (will ja die arme Kisa nicht völlig verwirren und ihr Unsinn erzählen)
Bezog sich auf die Kompilierbarkeit unter C#.
Dass das standalone nicht kompiliert hattest du ja im PDF angemerkt (auf den ersten Blick ist Array b nirgends definiert).


melden

Mergesort Processing

26.04.2010 um 07:15
@Quimbo
Dann bin ich wieder beruhigt. Ich dachte schon, ich hätte irgendeinen fatalen Bock geschossen.

Kisa kam mit dem Stück Sourcecode und wollte ihn erklärt haben. Ich denke, diese Aufgabe haben wir mittlerweile gelöst...


melden

Mergesort Processing

26.04.2010 um 20:07
Anhang: mergesort.exe (64,9 KB)Ich habe noch einmal ein paar Minuten investiert und zwei kleine Progrämmchen geschrieben.

Beides sind Demoprogramme, die die Funktionsweise einmal von Bubblesort und einmal von Mergesort veranschaulichen sollen. Beiden gemeinsam ist es, dass sie zwei Parameter entgegennehmen. Eine Zeichenkette (die auf dem Bildschirm sortiert wird) und eine (optionale) Ziffer von 0 bis 9. Sie dienst als Multiplikator für die Warteschleifen im Programm. D.h. bei 0 gibt es gar keine Warteschleifen (man sieht dann aber auch nur wenig...), bei 9 ist die Warteschleife entsprechend lang. Dann kann das sortieren schon mal dauern...

Ich habe sie natürlich mit "caroline" gestestet. Spaß macht auch "franzjagtimkomplettverwahrlostentaxiquerdurchbayern". (Da kann man auch ruhig die 0 nehmen, dauert immer noch einen Augenblick)

Also Aufruf mit

mergesort caroline 3

oder

bubblesort hinterbergmerkzwerghalberhausen

Wird wie im letzten Beispiel kein 2. Parameter übergeben, ist der default Wert 1 (Pausen zwischen 50 und 100 ms)


melden

Mergesort Processing

26.04.2010 um 20:07
Anhang: bubblesort.exe (62,4 KB)Und hier der Bubblesort...


melden

Mergesort Processing

27.04.2010 um 09:45
@all
Vergesst bitte das erste Programm testmergesort (zumindest alle die, die kein 64bit-Windows haben).

Aber die letzten beiden sollten es auf allen (Windows!-) Systemen tun.

Gibt es irgendwie eine Möglichkeit C nach Java zu portieren? (Dann könnte man die Programme mal Systemübergreifend und offen zur Verfügung stellen.)


melden

Mergesort Processing

27.04.2010 um 16:04
schade das es nicht läuft, die pdf ist ziemlich gut :) danke @Lufton


melden

Mergesort Processing

27.04.2010 um 16:26
@kisa
Das zweite Programm mergesort.exe läuft auf jedem (32bit) Windowssystem. Und tut genau das gleiche, bzw. die Ausgabe ist etwas anders. Lad es ruhig mal runter und probier es aus.


melden

Mergesort Processing

27.04.2010 um 16:28
@Lufton
das hab ich runter geladen wenn ich auf öffnen geh schließt es sich so gleich wieder


melden

Mergesort Processing

27.04.2010 um 16:45
Yepp, das ist klar... es erwartet mindestens einen Text, den es sortieren kann.

Mach also eine "DOS-Box" auf und starte das Programm dort mit

mergesort caroline 5

caroline ist der Text der sortiert wird, die 5 verlangsamt die Darstellung etwas.


melden

Mergesort Processing

27.04.2010 um 16:55
@Lufton
dos box?


melden

Mergesort Processing

27.04.2010 um 17:03
Auch bekannt als Eingabeaufforderung (früher eben Dos-Box)


melden

Mergesort Processing

27.04.2010 um 17:05
@kisa


melden

Mergesort Processing

27.04.2010 um 17:07
@Lufton
:( keine ahnung was du meinst


melden

Mergesort Processing

27.04.2010 um 18:47
@kisa


Muss man das als Mediengestalter können? Es gibt doch Bücher dazu, oder? Es ist auf jeden Fall am sinnvollsten A.) die in der Schule durchgenommenen Übungen zu machen, und wenn du sie nicht begreifst nachzuhacken und B.) aufbauend eine leichte Fachliteratur dazuzunehmen, damit sich das erlernte verfestigt.

Du wirst keine Progammierin und willst es denk ich mal auch nicht werden.

In einem Fachfremden Forum wird dir da niemand helfen können, denn wenn - dann triffst du hier auf Experten, wie Du siehst, versuchs doch wenn schon auf www.Mediengestalter.usw ( will keine Werbung für ein andere Forum machen, aber du weisst sicherlich Bescheid )

Die haben ein Forum, und da gibts sicher haufenweise Leute die genau ähnliche Probleme haben..


melden