PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bubblesort & Selectionsort


nymrod
10.02.2002, 18:20
hi leute,
ich hätte da mal eine bescheidene frage :)




int main()
{
int lottozahl[6];
randomize();

for (int j=0; j<6; j++)
{
lottozahl[j]=random(6)+1;
}


for (int i=0; i<5; i++)
{
for (int k=0; k<5; k++)
{
if (lottozahl[k]>lottozahl[k+1])
{
int zaehler = 0;
zaehler = lottozahl[k];
lottozahl[k] = lottozahl[k+1];
lottozahl[k+1] = zaehler;
}
}
}


for (int x=0; x<6; x++)
{
cout << &quot;Position &quot; << x+1 << &quot; = Lottozahl &quot; << lottozahl[x] << endl;
}

getch();
return 0;
}




ok dieser code wird nach dem bubblesort prinzip sortiert, der ist fuer mich auch recht verständlich nur wie funktioniert das mit dem selection sort? könnte mir jemand nur kurz den algorithmus vom selectionsort verfahren posten? ich habe zwar das struktugram nur das will mir nicht so recht einleuchten :( *beim tauschen und mit dem merker habe ich probleme*

bye nym

p.s. sorry das der code nicht so schoen formatiert ist *also eingerueckt ist*, aber irgendwie mag das board das hier nicht :)


nj0y
10.02.2002, 21:13
Ich hab gerade folgende Kurzbeschreibung gefunden:

Beim (aufsteigenden) Sortieren einer Folge von N Elementen durch Auswahl wird das jeweils nächstkleinste Element der Folge bestimmt und an die richtige Stelle getauscht. Beim ersten Durchlaufen der Folge wird also das kleinste Element gesucht und an die erste Stelle der Folge getauscht. Im zweiten Durchlauf wird vom zweiten Element an das zweitkleinste gesucht und an die zweite Stelle getauscht, usw., bis alle Elemente in aufsteigender Reihenfolge sortiert sind.

nymrod
11.02.2002, 17:22
hi leute,

big thx @ nj0y habe mir deinen text mal genauer vorgenommen und habs dann doch gepackt :)

Ergebnis:



int main();
{
int lotto[6];

randomize();
for (int j=0; j<6; j++)
{
lotto[j]=random(100)+1;
}

for (int i=0; i<5; i++)
{
int min=i;
int x=0;

for (int k=i+1; k<6; k++)
{
if (lotto[k]<lotto[k+1])
{
min=k;
}
}
x = lotto[i];
lotto[i] = lotto[min];
lotto[min] = x;
}

// -- Ausgabe --

for (int y=0; y<6; y++)
{
cout << &quot;Position : &quot; << y+1 << &quot;. &quot; << lotto[y] << endl;
}
getch();
return 0;
}



thx nochmal, ich hoffe es ist einigermaasen deutlich :)
bye nym

sami
11.02.2002, 18:21
Original von nymrod
p.s. sorry das der code nicht so schoen formatiert ist *also eingerueckt ist*, aber irgendwie mag das board das hier nicht :)

dochdoch, das geht schon.
mussts in [code] tags einschliessen.
dann wirds im html mit <pre> versehen oder so.
kannst übrigens auch über den button mit dem # drauf beim post erstellen.
die beschriftung is leider ned so klar verständlich.

@xothous: könnt ma doch ändern, ned?

FiReFoX
11.02.2002, 19:44
ich habe mal eine frage wieso schreibt ihr alle


int main()

das interessiert mich wirklich

nj0y
11.02.2002, 19:52
@ FiReFoX

Was schreibst Du denn?

Bibolorean
11.02.2002, 20:14
@ FiReFoX

Ich hab zwar nicht gerade viel Ahnung und Erfahrung mit C oder C++ aber:
int main()
bedeutet dies: Haupt-Prozedur!

Und eigentlich kenn ich niema der das anders schreibt!! Hab fast das Gefühl, könnte ergendwo mal genormt worden sein :D :D :D


Greetz Bìbòlorean

nymrod
11.02.2002, 22:47
@Firefox

ich kann sicher auch void main(void) oder sowas schreiben :) da muss ich halt am ende den returnwert weglassen

int <- sagt der funktion doch nur was fuer ein wert an diese zurueckgegeben wird, wenn ich das so recht verstanden hab hier in meinem kleinen buechle :) in diesem fall hat int (integer) also eine ganze zahl :)

@sami

thx, ist mir so nicht aufgefallen :)