Binární vyhledávání Napište funkci binarni_vyhledavani (hodnota, seznam), která zjišťuje, zda se hodnota nachází ve vzestupně uspořádaném seznamu. >>> binarni_ _vyhledavani (5, [1, 2, 5, 8] ) True >>> binarni_ _vyhledavani (4, [1, 2, 5, 8] ) False 1 Pascalův trojúhelník Napište funkci, která vypíše n řádků Pascalova trojúhelníku >>> pascaluv_trojuhelnik(6) 1 1 1 12 1 13 3 1 1 4 6 4 1 1 5 10 10 5 1 Řadící algoritmy Implementujte různé způsoby řazení seznamu, např. řazení vkládáním (insert_sort), řazení výběrem (select-sort) a řazení výměnou - bublinkové řazení (bubbie_sort) »> x = [5, 3, 2, 4, 1] >>> insert_sort(x) >>> print x ;i, 2, 3, 4, 5! Generování seznamů Napište funkce pro generování seznamů: ■ náhodný seznam ■ obrácená posloupnost ■ téměř seřazený seznam >>> nahodny_seznam(10) :9, 2, 6, 4, 8, 1, 0, 7, 3, 5! >>> obracena_posloupnost(10) :9, 8, 7, 6, 5, 4, 3, 2, 1, 0! >>> temer_serazeny seznam(lO) ;i, 0, 2, 3, 4, 5, 7, 6, 8, 9! 1 -o^o Analýza řadících algoritmů Využijte funkcí pro generování seznamu k analýze efektivity různých řadících algoritmů. Vyzkoušejte, jak velká pole se jednotlivým algoritmům podaří seřadit do několika málo vteřin. Hraje roli i to, jak moc je vstupní seznam seřazený? Pro přesnější analýzu můžete doplnit vaše řadící funkce o počítání provedených elementárních operací (přiřazení a porovnávání) >>> analýza. _vkladani(nahodny_ .seznam (10 0) ) 10287 >>> analýza. _vkladani(nahodny_ .seznam (10 0) ) 10439