Hoi, mijn eerste post op GoT!
Val me even niet aan over het Mickey Mouse niveau van deze code
Het is een opdracht voor school, en ik heb weinig zin om alles te gaan herschrijven naar coolere naamgeving etc.
De opdracht is feitelijk heel simpel: sorteer rij[] zodat de het laagste getal vooraan komt, en het hoogste getal achteraan, en alles ertussen oplopend. Het kan wellicht allemaal wat simpeler, maar het gaat mij erom dat deze code min of meer zo kan blijven en dan gewoon werken. Ik hoef uiteraard geen kant en klare antwoorden, maar wellicht een paar goede tips in de juiste richting.
Tot dusver had ik zelf inmiddels door dat er een probleem met de loop van bepaalKleinsteEnGrootste is, aangezien ik daar de eerste keer iets probeer te krijgen dat kleiner is dan 0, en dat kan uiteraard niet. Wellicht heeft iemand daar een idee over, hoe dat getackeld kan worden?
Alvast enorm bedankt!
Val me even niet aan over het Mickey Mouse niveau van deze code
De opdracht is feitelijk heel simpel: sorteer rij[] zodat de het laagste getal vooraan komt, en het hoogste getal achteraan, en alles ertussen oplopend. Het kan wellicht allemaal wat simpeler, maar het gaat mij erom dat deze code min of meer zo kan blijven en dan gewoon werken. Ik hoef uiteraard geen kant en klare antwoorden, maar wellicht een paar goede tips in de juiste richting.
Tot dusver had ik zelf inmiddels door dat er een probleem met de loop van bepaalKleinsteEnGrootste is, aangezien ik daar de eerste keer iets probeer te krijgen dat kleiner is dan 0, en dat kan uiteraard niet. Wellicht heeft iemand daar een idee over, hoe dat getackeld kan worden?
Alvast enorm bedankt!
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
| #include <iostream> #include <fstream> using namespace std; const int MAX_LEN = 7 ; void verwissel (int rij [], int i, int j){ int t = rij[i] ; rij[i] = rij[j] ; rij[j] = t; } void bepaalKleinsteEnGrootste(int rij[],int van,int tot,int &kl,int &gr){ kl = van; gr = tot; for (int i = van; i < tot; i++) { if (rij[i] < kl) kl = i; if (rij[i] > gr) gr = i ; } } void selectionSort (int rij [], int lengte, int &kl, int &gr){ for (int x = 0; x < lengte; x++) cout << x << "=>" <<rij[x] << "; "; cout << "\n"; // lengte/2+1 zodat de verwissel functies elkaar niet op gaan heffen.. for (int i = 0; i < lengte/2+1; i++){ bepaalKleinsteEnGrootste (rij,i,MAX_LEN-i,kl,gr) ; verwissel (rij, i, kl); verwissel (rij, MAX_LEN-i, gr); // hier wil ik de gesorteerde rij laten zien.. cout << "gesorteerd " << rij[i] << endl ; } } void main(){ int rij[MAX_LEN] = {3,4,2,7,1,6,5} ; int kl, gr; selectionSort (rij, MAX_LEN, kl, gr) ; } |