Seite 1 von 2

Funktion für C++ gesucht

Verfasst: 8. Apr 2011, 17:05
von Milchschnitte
Hallo,

ich suche eine Funktion, die einee Liste (also kein Array bzw Vektor) mit Zahlen sortieren kann.

Also z.b. wenn die Liste folgendermaßen aussieht:
1 3 2 10 9

soll das Porgramm bzw die Funktion, die ich dann in mein Programm einbauen kann, das hier machen:
1 2 3 9 10

also sortieren von klein nach groß.

Wäre nett wenn jemand sowas kennt/hat.

MfG Milchschnitte

Re: Funktion für C++ gesucht

Verfasst: 8. Apr 2011, 17:08
von Hail Eris
Eine Liste? Wie soll die aufgebaut sein, n Variablen, die je eine Zahl halten, oder ein String aus den Zahlen, oder was anderes?

Re: Funktion für C++ gesucht

Verfasst: 8. Apr 2011, 17:13
von pk93
Wenn du von Anfang an die Elemente einfügen willst, dann kontrolliere gleich am Anfang, ob es größer ist oder kleiner.

Oder willst du die Liste einfügen und dann am Ende erst kontrollieren?

edit:

Nur zur Auffrischung von mir, ob ich es richtig verstandne habe^^

List hat einen Wert und einen Zeiger aufs Nächste element.
Dann gibt es noch einen start Zeiger, der aufs erste Element zeigt und einen End, der aufs Letzte zeigt.

Re: Funktion für C++ gesucht

Verfasst: 8. Apr 2011, 17:16
von Benu
Was hindert dich daran dir mal für maximal eine Minute Zeit zu nehmen und bei google.de "liste sortieren cpp" einzugeben?

Re: Funktion für C++ gesucht

Verfasst: 8. Apr 2011, 17:18
von Hail Eris

Re: Funktion für C++ gesucht

Verfasst: 8. Apr 2011, 17:18
von Milchschnitte
Hail Eris hat geschrieben:Eine Liste? Wie soll die aufgebaut sein, n Variablen, die je eine Zahl halten, oder ein String aus den Zahlen, oder was anderes?
Ja, genau.Eine sozusagen "einfach verkettete Liste". Die erhält ein Element ( bei mir eine Zahl) und dazu noch ein Zeiger, der auf die nächste zahl zeigt usw.
pk93 hat geschrieben:Wenn du von Anfang an die Elemente einfügen willst, dann kontrolliere gleich am Anfang, ob es größer ist oder kleiner.

Oder willst du die Liste einfügen und dann am Ende erst kontrollieren?

edit:

Nur zur Auffrischung von mir, ob ich es richtig verstandne habe^^

List hat einen Wert und einen Zeiger aufs Nächste element.
Dann gibt es noch einen start Zeiger, der aufs erste Element zeigt und einen End, der aufs Letzte zeigt.
Ja genau. Sowas wie es bei dir im Edit steht mein ich^^

Und ob ich erst einfüge und dann sortiere oder gleich sortieren ist eigentlich egal. Am schluss brauch ich halt eine sauber sortierte Liste und ich weiß nicht wie das geht. Das einzige was ich weiß, ist wie man bei einer Liste eine Zahl vorne anhängt.

Re: Funktion für C++ gesucht

Verfasst: 8. Apr 2011, 17:21
von Hail Eris
Milchschnitte hat geschrieben:
Hail Eris hat geschrieben:Eine Liste? Wie soll die aufgebaut sein, n Variablen, die je eine Zahl halten, oder ein String aus den Zahlen, oder was anderes?
Ja, genau.Eine sozusagen "einfach verkettete Liste". Die erhält ein Element ( bei mir eine Zahl) und dazu noch ein Zeiger, der auf die nächste zahl zeigt usw.
Oder-Fragen kann man nicht mit "Ja" beantworten.

Naja, können schon, aber es macht keinen Sinn.

Re: Funktion für C++ gesucht

Verfasst: 8. Apr 2011, 17:22
von Milchschnitte
das "Ja, genau" war auf "Eine Liste?" bezogen. Der rest von deinem Post hab ich ja dann dannach beantwortet

Re: Funktion für C++ gesucht

Verfasst: 8. Apr 2011, 17:23
von Benu
Benu hat geschrieben:Was hindert dich daran dir mal für maximal eine Minute Zeit zu nehmen und bei google.de "liste sortieren cpp" einzugeben?

Re: Funktion für C++ gesucht

Verfasst: 8. Apr 2011, 17:24
von pk93
Hab mal etwas geschrieben, was so in etwa das sein sollte.

Nicht probiert (Keinen C++ Compiler) und Variablen-Namen sind halt irgendwie ausgewählt^^
Hab keine Zeit, da ich noch was erledigen muss, deshalb ist es sehr schlampig.

Code: Alles auswählen

funktion:
{
Pointer * act, *act2;

int help, help2, help3;

act=liste.start;
act2 = liste.start;

while(act.next != null)
	{
	help = act.wert;
	act = act.next;
	help3 = act.wert;
	if(help>help3)
	{
		help2 = help;
		act2.wert = help3;
		act.wert = help;
	}
	act2 = act;
	act = act.next;
	}
}

Hab keinen Plan ob das Funktioniert und wie ich eine Liste an das UP mache hab ich auch schon vergessen.

Auch möglich, dass es kompletter Blödsinn ist^^

Re: Funktion für C++ gesucht

Verfasst: 8. Apr 2011, 17:27
von Milchschnitte
Goggle hab ich schon über 1 Stunde durchsucht :)

Das problem ist hat, dass die meisten Arrays benutzen und keine Listen.

Re: Funktion für C++ gesucht

Verfasst: 8. Apr 2011, 17:30
von Milchschnitte
=snigg= hat geschrieben:dann benutz doch auch arrays..?^^
darf ich ja nicht :)

Arrays sind halt schlecht weil sie einen definierten Speicherbereich brauchen und Listen kann man ewig weit erweitern :)

Re: Funktion für C++ gesucht

Verfasst: 8. Apr 2011, 17:31
von Benu
Milchschnitte hat geschrieben:Goggle hab ich schon über 1 Stunde durchsucht :)
Das problem ist hat, dass die meisten Arrays benutzen und keine Listen.
Bullshit.
Nutz Suchbegriffe, die du auch suchst. Hab doch geschrieben: "liste sortieren cpp". Da kommt nichts mit Arrays sondern du wirst feststellen, dass es in cpp vordefinierte Listenklassen gibt.

Milchschnitte hat geschrieben:
=snigg= hat geschrieben:dann benutz doch auch arrays..?^^
darf ich ja nicht :)

Arrays sind halt schlecht weil sie einen definierten Speicherbereich brauchen und Listen kann man ewig weit erweitern :)
Nein? Für beide musst du neuen Speicher reservieren, wenn sie zur Laufzeit erweitert werden.

Re: Funktion für C++ gesucht

Verfasst: 8. Apr 2011, 17:33
von Milchschnitte
Oh, hab das Wort von dir nicht gesehen, sry.

ich hab nämlich immer "Bubblesort für listen" gesucht

Naja, danke, ich werd mich mal mit deinem Suchbegriff durchackern

Re: Funktion für C++ gesucht

Verfasst: 8. Apr 2011, 17:35
von Milchschnitte
Benu hat geschrieben: Nein? Für beide musst du neuen Speicher reservieren, wenn sie zur Laufzeit erweitert werden.
Ja schon klar.
Aber bei den Arrays muss ich das Programm abbrechen und den Speicher erweitern (z.b. von Array[50] auf Array[100]) und bei Listen kann ich beliebig weit neue Zahlen abspeichern. (natürlich legt das Programm dafür dann allein einen neuen Speicher ein)