Portál AbcLinuxu, 15. prosince 2025 23:55
Snad takhle?
bool Mnozina::find(int x, size_t& result) const
{
const int *p = _data;
size_t size = _size;
size_t index;
while (size > 0)
{
index = size >> 1;
if (p[index] == x)
{
result = (size_t)(p - _data) + index;
return true;
}
else if (p[index] > x)
{
size = index;
}
else // p[index] < num
{
p += index + 1;
size -= index + 1;
}
}
result = (size_t)(p - _data);
return false;
}
Ano !!! Progtest to sežral. Děkuji všem za rady, nakonec jsem to teda našel sám
Příště si správně napsat to hledání...
bsearch ze stdlib.
binarni vyhledavani je ukazkovym prikladem algoritmu typu divide et impera, takze pouziti rekurze je vic nez nasnade. z vyse uvedeneho kodu je opravdu radost lustit, co vlastne dela.
mimochodem, tvuj priserny zlozvyk zamenovat operace nasobeni a deleni s operacemi bitovych posunu byl povazovan za znamku spatneho programatora uz v sedesatych letech minuleho stoleti... a to tehdy byly jine pocitace...
, ale rekurzivně ho nepíše snad nikdo.
ale rekurzivně ho nepíše snad nikdoto je hodne silne tvrzeni. ja treba jo a nejsem sam. imho je tak ten algoritmus citelnejsi a jednotliva volani jsou v tail-pozici, takze rychlost je plne srovnatelna s iterativni verzi. a hlavne.
Bitový posun je mnohem rychlejší a nepracuji se znaménkovým typem, takže ...a muzes mi to tvrzeni nejak dolozit... a demonstrovat o kolik je to mnohem rychlejsi?
# vstup rax, výstup rax 48 d1 e8 shr rax #bitový posun vpravo o 1b vs 48 c7 c3 02 00 00 00 mov rbx, 0x2 48 f7 f3 div rbx
Rikejte mi "Mistr Svinak" 
Mno, alespon nikdy nezustane osamocen jako "PeTovo tricko".
No, hele, co takhle v zadání "Odevzdávaný soubor nesmí kromě implementace třídy Mnozina obsahovat nic jinéh, zejména ne funkci main" ... ?
Další úkol z C++ a další problémy.Já nevím, co na tom jazyku lidi vidí…
A nechci to zkazit, jsem amatér, to vidíš ...
Popravdě na TODO není moc času, teď mě zajímá nejvíc zkusit použít vlákna na vykreslování, celkem zábava :)
PS: Jinak to tajné zní dobře :)

...dneska bez školy nemůžeš prodávat ani ty pračky, ale nezoufej, možná to vyjde s lopatou.Aj na to sú už dneska školy
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.