Witam, muszę napisać algorytm Hoare'a w C++ oraz algorytm magicznych piątek. Rozumiem zamysł tego działania jednak męczę się cały czas z pewnym błędem. Mógłby ktoś naprowadzić mnie na rozwiązanie tego problemu?
Kod:
#include <iostream>
#include <conio.h>
using namespace std;
int hoare(int t[], int m, int n, int k)
{
if (n == 0 && k == 0) {
return t[0];
}
int x, y, r;
x = m;
y = n;
r = t[0];
do {
while (t[x] < r) {
x++;
}
while (r < t[y]) {
y--;
}
if (x <= y) {
x++;
y--;
}
} while (x <= y);
if (x < k) {
return hoare(t,0,x,k);
}
else {
return hoare(t, x, y, k);
}
}
int main() {
int tab[10] = { 7,2,4,3,6,8,1,5,9,0 };
cout << hoare(tab, 0, 9, 3);
_getch();
return 0;
}
Kod błędu:
Nieobsłużony wyjątek w lokalizacji 0x01051819 w algorytm hoare'a.exe: 0xC00000FD: Stack overflow (parametry: 0x00000001, 0x00682FEC).: wystąpił wyjątek