Portál AbcLinuxu, 29. října 2025 16:20
Cupiditate sit voluptatibus architecto minus voluptatem quia et in. Facere repellendus natus ullam sunt eius non. Tempore inventore et nihil alias. Possimus sequi voluptates repellat odio quia suscipit dolores. Et nihil nihil dolore nemo harum qui quidem excepturi. Sit ut ipsa eum.
Tiskni
Sdílej:
KSP je formulace celkem jednoduchych VS problemuPro složitější úlohy mohu doporučit mezinárodní olympiádu z programování
Tak jestli mas chut, muzes to zkusit. Vyhod oproti tem ruznym cvicenim je nekolik: realnej priklad pouziti, skutecny funkcni projekt, nepotrebujes na to znalosti matematiky (max. tak LDAP a ten je fakt docela jednoduchej, navic dulezity LDAP veci jsou uz naprogramovany), a pokud se pridas, tak to prinese uzitek a ty se naucis opravdu neco skutecnyho (a pripadne to muzes pouzit do referenci
)
pamatuju, jednou jsem potreboval nejakej python upravit, neco fakt simple, nejakej debug print, jedna radka, tak jsem tam mrsknul (tusim jeste snad copy&paste) jeden radek a desne me vytocilo, kdyz to nechodilo, protoze puvodni autor pouzival k odsazeni mezery, kdezto ja mam nastaveny (mam to radsi) TABY, takze jeho 8 mezer bylo jiny odsazeni nez mych 4 tabu (pouzivam 2 mezery na tab). Tim me python dost odradil, ikdyz na nej ctu samou chvalu. Nastesti si na spoustu admin veci vystacim s perlem/awkem/sedem/grepem. A navic jsem jeste nevidel priklad python scriptu na prikazovou radku podobne jako perl -e 'skript'
Ja osobne bych se asi fakt nejvic o jazyku naucil z jinych projektu a prikladu, protoze ulohy na programovani byvaji spis jenom o tom, jestli znas teoretickej postup, pak uz to napises v jakymkoliv jazyku, s pouzitim zakladnich prikazu.
def qsort(a)
return [] if a.empty?
lo, hi = a[1..-1].partition{|x| x<a[0]}
qsort(lo) + [a[0]] + qsort(hi)
end
Takže na tom se fakt nic nenaučí.
Ale ty "ruzny triky na zvyseni rychlosti, ke kterym je zapotrebi taky vyssi matematika nebo logika" se podle mě jmenujou "algoritmy".
Ale quicksort s konstantní pamětí (tedy bez zásobníku) existuje, hledej pána Ďuriana.
Ten článek mám, na požádání ho pošlu.
Ale určitě si to projdu.
Jestli Ti jde o obecnou algoritmizaci, doporucuju projit prvni rocniky informatickych fakult. Materialy byvaji na netu. U nas na FITu to byly nejake zaklady programovani (obecne o sprave pameti, ukazatele, seznamy - vsechno demonstrovane na Pascalu, ale pry uz presli na C) a potom Abstraktni Datove Struktury (seznamy, stromy, razeni, etc.).
Co se ale tyka te matematiky - v nejakych pokrocilejsich konstrukcich se bez alespon zakladu teorie grafu moc neobejdes - hodne uloh se prevadi prave na tohle (pozn. strom je taky graf). Na druhou stranu zaklady teorie grafu jsou oblibenou hrackou pro deticky na ruznych matematickych olympiadach, takze dost z toho uz mozna znas, jenom to neumis pojmenovat.
Co se tyka OOP (a ted nemluvim o pratelich pana Arafata), to bych do toho nemichal. OOP je o navrhu a o stylu programovani. Pokud nebudes umet klasicky (linearni) styl, OOP Ti nepomuze - spis Ti naopak zamota hlavu.
Osobne bych doporucoval trochu neco zjistit o dynamicke alokaci pameti (nejlepe styl Ccka, at vis zhruba o cem to je), potom abstraktni struktury (seznam, zasobnik, fronta) a na nich si vyzkousej nejake razeni (dobre vedet, ze existuji i jine algoritmy, nez bubble sort). Na zaver si zkus par algoritmu se stromem (pruchody stromem, vkladani/mazani prvku) a pokud se dostanes i pres to, mel bys v prubehu mit dost zkusenosti, abys vedel cemu se venovat dal (treba to OOP, hrani s typy, etc.)
"Co se tyka OOP (a ted nemluvim o pratelich pana Arafata), to bych do toho nemichal. OOP je o navrhu a o stylu programovani. Pokud nebudes umet klasicky (linearni) styl, OOP Ti nepomuze - spis Ti naopak zamota hlavu."Jo, a navíc je to ještě jen podmnožina návrhu a stylu programování, která se v SICP odbyde jako jedna z několika možností.
Jinak se na algoritmy doporučuje i tahle knížka.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.