» Willkommen auf Software «

TheOne
aus Selm
offline



OC God
14 Jahre dabei !

Intel Core 2 Duo
2800 MHz @ 3300 MHz
55°C mit 1.20 Volt


Hab folgendes Problem. Ich wollte mal ein Programm schreiben mit dem ich Zahlen (integer) sortieren kann.

Dazu gibts in Google eine menge Ansichtsmaterial und Beispiele :lol: Von BubbleSort bis was weiß ich nicht :noidea: ... Nur fühl ich mich jetzt reihenweise erschlagen und komm darum nicht wirklich weiter :) Außerdem sind alle Beispiele entweder für Zufallsgenerierte Zahlen, oder Zahlen die schon im Prog festgelegt sind :waterfall: Ich möchte aber diese Zahlen selber über die Konsole eingeben können die sortiert werden sollen. Also das Array soll sie zugewiesen bekommen.

Nun hat mich das alles irgendwie aus dem Konzeot gebracht und würde gerne um Hilfe bitten :lol: ^^ Wie das Programm mit Eingabe und Ausgabe aussehen soll und kann. Am besten so, dass die Schritte in der Konsole, also der Sortiervorgang zu sehen ist ;)

Ich glaube es geht sorgar um einen Tauschvorgang. Die Zahlen werden der Reihe nach in Positionen verglichen und dann getauscht :noidea: Oder so ähnlich.. Naja, wäre für Hilfe dankbar :help: :lol:

MfG

Euer Einer :)


TheOne ist im Forum jetzt One

Beiträge gesamt: 9938 | Durchschnitt: 2 Postings pro Tag
Registrierung: Feb. 2003 | Dabei seit: 5416 Tagen | Erstellt: 13:48 am 10. Okt. 2006
SPYcorp
offline



OC God
13 Jahre dabei !

AMD Athlon 64 X2 Dual Core
2000 MHz @ 2400 MHz
50°C mit 1.25 Volt


Bubble-Sort ist wenn ich mich richtig erinnere das beste Verfahren.
Was die Eingabe im Array angeht, sollte mit C recht leicht gehen (ist schon ne weile her).
Also einfach Array füllen, dann bubble sort laufen lassen und dann "print".

Muß jetzt erstmal weg, schau später nochmal rein.

Beiträge gesamt: 1437 | Durchschnitt: 0 Postings pro Tag
Registrierung: Sep. 2004 | Dabei seit: 4842 Tagen | Erstellt: 19:12 am 10. Okt. 2006
wakko0816
offline



OC God
13 Jahre dabei !

Intel Core i5
3500 MHz @ 4200 MHz
55°C mit 1.18 Volt


naja. bubblesort ist nur am einfachsten zu implementieren aber dafür
unglaublich langsam.

statt einem array würde ich eher einen std::vector verwenden, da bei diesem
im gegensatz zum array die grösse/länge zur laufzeit variabel ist. bei einem
array musst du die grösse vorher festlegen, und die ist dann zur laufzeit nicht
mehr so leicht zu ändern.
wenn du trotzdem ein array verwenden möchtest kannst du den einlese-vorgang
ganz leicht mit einer for-schleife bewerkstelligen die halt so viele schritte hat wie
das array lang ist.
bei einem vector musst du für den einlese-vorgang eine abbruchbedingung
einbauen(z.b. wenn ein buchstabe eingegeben wurde).

einlesen geht mit
Code

std::cin>> variablenname;


ausgabe mit
Code

std::cout<<"Zahl: " << variablenname << std::endl;


Beiträge gesamt: 1146 | Durchschnitt: 0 Postings pro Tag
Registrierung: Aug. 2004 | Dabei seit: 4855 Tagen | Erstellt: 21:07 am 10. Okt. 2006
buschmanoff
aus Jena
offline



OC Profi
11 Jahre dabei !

Intel Core 2 Duo
2400 MHz @ 2900 MHz
45°C mit 1.35 Volt


er kann auch ein dynamisches array nehmen, da ist die länge auch variabel. ;)

Wenn ich das jetzt nicht verwechsel müsste sowas min-sort aber einfacher sein, solange die Zahls sofort an die richtige Stelle im Array eingeordnet werden soll. Wenn du erst alle Zahlen eingibst und anschliessend, nachdem du das Array komplett eingegeben hast, sortieren willst, wäre quick sort das passende für dich.
Da ich C++ noch nie geschrieben hab, kann ich dir mit dem Quelltext auch nicht weiter helfen und die Algorithmen findet man ja überall im Inet. :)

Beiträge gesamt: 737 | Durchschnitt: 0 Postings pro Tag
Registrierung: März 2006 | Dabei seit: 4286 Tagen | Erstellt: 17:19 am 11. Okt. 2006
wakko0816
offline



OC God
13 Jahre dabei !

Intel Core i5
3500 MHz @ 4200 MHz
55°C mit 1.18 Volt



er kann auch ein dynamisches array nehmen, da ist die länge auch variabel.  


ja. das heisst in c++ halt "vector" ;)

für diesen gibt es sogar eine eigene bereits fertige sortierfunktion names "sort".
aber da hier anscheinend selber sortiert werden soll empfehle ich nach wie vor
bubble-sort denn für quick-sort muss man sich noch mit rekursion auseinandersetzen...

Beiträge gesamt: 1146 | Durchschnitt: 0 Postings pro Tag
Registrierung: Aug. 2004 | Dabei seit: 4855 Tagen | Erstellt: 17:56 am 11. Okt. 2006
TheOne
aus Selm
offline



OC God
14 Jahre dabei !

Intel Core 2 Duo
2800 MHz @ 3300 MHz
55°C mit 1.20 Volt


Und wie sieht sowas aus? :noidea: Dieses unkommentierte Zeugs im netz verwirrt mich teilweise. Vor allem weil da noch so viel anderes zeugs im Quelltext ist was ich anscheinend nich brauche. Es fällt mir schwer das wesentliche zu filtern :sad:


TheOne ist im Forum jetzt One

Beiträge gesamt: 9938 | Durchschnitt: 2 Postings pro Tag
Registrierung: Feb. 2003 | Dabei seit: 5416 Tagen | Erstellt: 20:40 am 11. Okt. 2006
wakko0816
offline



OC God
13 Jahre dabei !

Intel Core i5
3500 MHz @ 4200 MHz
55°C mit 1.18 Volt


ah. gut, wenn man alte hausaufgaben aufhebt :)
ist aber nur ne improvisierte linux-version(mit g++). für visual studio
o.ä. muss man wahrscheinlich noch ein/zwei sachen ändern.

sort_test.cpp


Beiträge gesamt: 1146 | Durchschnitt: 0 Postings pro Tag
Registrierung: Aug. 2004 | Dabei seit: 4855 Tagen | Erstellt: 0:52 am 12. Okt. 2006
TheOne
aus Selm
offline



OC God
14 Jahre dabei !

Intel Core 2 Duo
2800 MHz @ 3300 MHz
55°C mit 1.20 Volt


Hab Dev++ ;) ber trotzdem danke, das hilft mir sehr :)


TheOne ist im Forum jetzt One

Beiträge gesamt: 9938 | Durchschnitt: 2 Postings pro Tag
Registrierung: Feb. 2003 | Dabei seit: 5416 Tagen | Erstellt: 14:15 am 12. Okt. 2006