Ahoj, v C++ se teprve učím, ale už si asi přes hodinu lámu hlavu, proč mi nechce moji číselnou řadu seředit selection sort, když jsem zavolal přes menu. Na netu najdu že když se to dělá přes If, tak akorát vypisují text. Já potřebuju vybrat tu funkci. Kod mám takhle. Ale jen mi to znova vypíše tu řadu. Neseřadí jí to. Mohl by mi někdo ukázat, kde mám chybu? Díky
#include <iostream>
#include "time.h"
using namespace std;
int minIndex;
const int pocet = 5;
int main(void)
{
int pole[pocet];
srand((unsigned int)time(NULL));
for (int i = 0; i <= pocet - 1; i++) {
pole[i] = rand() % 100;
cout << pole[i] << " ";
}
char volba;
cout << "\n=========================";
cout << "\n Jak budete chtit radit?";
cout << "\n=========================";
cout << "\n 1 - Merge sort";
cout << "\n 2 - Selection sort ";
cout << "\n 3 - Shaker sort";
cout << "\n Zvoleny algoritmus: ";
cin >> volba;
switch (volba) {
case '1': {cout << "\n Merge sort\n"; }
break;
case '2': {cout << "\n Bubble sort"; }
break;
case '3': {cout << "\n Shaker sort"; }
break;
default: cout << "\n Ups, spatna volba";
}
cout << "\n";
if (volba == 2) {
for (int i = 0; i < pocet - 1; i++) {
minIndex = i; // index aktualne razene pozice
// najdu nejmensi prvek neserazene posloupnosti
for (int j = i + 1; j < pocet; j++) if (pole[minIndex] > pole[j]) minIndex = j;
if (minIndex != i) {
int hlp = pole[minIndex];
pole[minIndex] = pole[i];
pole[i] = hlp;
}
}
cout << endl;
for (int i = 0; i <= pocet - 1; i++) cout << pole[i] << " ";
}
else
{
return 0;
}
}