Na této stránce naleznete moji implementaci použitých algoritmů v C++. Celý
zdrojový soubor se nachází zde.
//pripadne ulozeni vysledku na
konci vetve
void _CheckResult()
{
if (price >
result.price)
SaveData(); //ulozeni aktualni konfigurace
do result
}
//zkouseni jednotlivych veci
void _BPTryThing(int index)
{
//? neni posledni vec
if (index <
result.count)
{
//zkusit s veci index
if (
Add(index) ) {
_BPTryThing(index + 1);
Remove(index);
}
//zkusit bez
_BPTryThing(index + 1);
}
//za posledni veci - ulozeni vetve
else
_CheckResult();
}
//hlavni metoda reseni
void BrutalPower()
{
_BPTryThing(0);
}
//hlavni fce metody
void PriceWeightHeuristic()
{
if (indexes != NULL)
delete[] indexes;
//serazeni dle pomeru cena/vaha
indexes = PriceWeightSort(result.count);
//pridavani
for (int i = 0; i < result.count; i++)
{
if (!
Add(indexes[i]) )
break;
}
SaveData();
delete[] indexes;
indexes = NULL;
}