Izberite svoj jezik
Tečaj podatkovnih struktur in algoritmov v Pythonu
Več kot 2 milijona študentov po vsem svetu

Tečaj podatkovnih struktur in algoritmov v Pythonu

4,5

Obvladaj Python in podatkovne strukture ter algoritme od samih osnov — brez bližnjic, brez praznega balasta. Ta tečaj te popelje od pisanja prve Python skripte do reševanja kompleksnih problemov z grafi in dinamičnim programiranjem. Ne glede na to, ali ciljaš na vodilna tehnološka podjetja ali dviguješ svoje inženirske spretnosti, je to popolna tehnična osnova, ki jo potrebuješ.

Dedika za podjetja

Kaj se boste naučili:

Zgradil/-a boš trdne temelje Pythona, ki pokrivajo sintakso, zbirke in objektno-usmerjeno načrtovanje, preden se premakneš k osrednjim temam DSA. Popolnoma iz nič boš izvedel/-a polja, povezane sezname, sklade, vrste, drevesa in grafe. Analiziral/-a boš časovno in prostorsko zahtevnost z uporabo notacije veliki O za vsak pomembnejši algoritem. Obvladal/-a boš urejanje, iskanje, rekurzijo in dinamično programiranje s pravo kodo. Vadil/-a boš tudi vzorce tekmovalnega programiranja in tehnike simuliranih intervjujev, zasnovane za pripravo na tehnične zaposlitvene postopke v vodilnih tehnoloških podjetjih.

Kako praktično študirate Tečaj podatkovnih struktur in algoritmov v Pythonu

Kako vadite Tečaj podatkovnih struktur in algoritmov v Pythonu

Za vas, ki ste podjetje in želite usposobiti svojo ekipo

Na Dedika za podjetja je tečaj prilagojen z vajami in primeri iz vašega lastnega poslovanja, tako kot vaša podjetja potrebujejo.

Kliknite tukaj

Vsebina tečaja

8 Poglavji • 40 Uč lekcijeTrajanje med 4 in 360 urami (vi se odločite)

Poglavje 1Poglej podrobnosti

Osnove programiranja v Pythonu

  • Uč lekcija 1 • Funkcije in doseg

    Opredeljuje funkcije za večkratno uporabo s parametri, povratnimi vrednostmi in pravili dosega. Pripravi udeležence na enkapsulacijo logike DSA v čistih, preizkusljivih enotah.

  • Uč lekcija 2 • Krmilni tok in iteracija

    Uči vejanje if/elif/else, zanke for in while ter stavke za nadzor zanke. Udeležencem omogoča izražanje algoritmične logike v Pythonu.

  • Uč lekcija 3 • Obravnava napak in razhroščevanje

    Uvede izjeme, bloke try/except in orodja za razhroščevanje. Udeležence opremi za pisanje robustne kode in diagnosticiranje napak v kompleksnih programih.

  • Uč lekcija 4 • Osnovni podatkovni tipi in spremenljivke

    Obravnava cela števila, števila s plavajočo vejico, nize, logične vrednosti in pretvorbo tipov. Zagotavlja podatkovne primitive, uporabljene v vsaki algoritmični implementaciji v nadaljevanju.

  • Uč lekcija 5 • Priprava okolja Python

    Namesti Python, konfiguriraj navidezno okolje in izberi IDE. Vzpostavi orodno verigo, od katere je odvisno vsako naslednje poglavje.

Poglavje 2Poglej podrobnosti

Kolekcije in razumevanja v Pythonu

  • Uč lekcija 1 • Iteratorji, generatorji in leno vrednotenje

    Pojasnjuje protokol iteratorja, generatorske funkcije in yield. Omogoča pomnilniško učinkovito obdelavo velikih podatkovnih nizov pri problemih DSA.

  • Uč lekcija 2 • Seznami in terke poglobljeno

    Raziskuje indeksiranje, rezinjenje, spreminjanje in nespremenljivost terk. Ti sekvenčni tipi podpirajo podatkovne strukture na osnovi polj, ki so obravnavane kasneje.

  • Uč lekcija 3 • Slovarji in množice

    Obravnava shranjevanje na osnovi zgoščevanja, operacije ključ-vrednost in algebro množic. Neposredno podpira implementacije zgoščevalnih tabel in sosednosti grafov.

  • Uč lekcija 4 • Razumevanja seznamov in slovarjev

    Uči jedrnato sintakso razumevanj za filtriranje in preoblikovanje kolekcij. Zmanjšuje količino ponavljajoče se kode v algoritmičnih implementacijah skozi celoten tečaj.

  • Uč lekcija 5 • Razvrščanje, iskanje in vgrajeni algoritmi

    Uporablja sorted(), min(), max() in ključne funkcije za obdelavo kolekcij. Povezuje vgrajene zmogljivosti Pythona z algoritmi za razvrščanje po meri, ki jih obravnavamo v nadaljevanju.

Poglavje 3Poglej podrobnosti

Analiza algoritmov in zahtevnost

  • Uč lekcija 1 • Uvod v analizo algoritmov

    Opredeljuje pravilnost algoritma, učinkovitost in potrebo po formalni analizi. Postavi analitično miselnost, ki se uporablja za vsako podatkovno strukturo in algoritem v nadaljevanju.

  • Uč lekcija 2 • Veliki O, velika Omega in velika Theta

    Formalizira asimptotično notacijo in pogoste razrede zahtevnosti. Zagotovi besednjak, uporabljen za opis vsakega algoritma v naslednjih poglavjih.

  • Uč lekcija 3 • Analiza zank in rekurzivnih klicev

    Uči štetje korakov za zanke in rekurenčne relacije za rekurzijo. Neposredno pripravi udeležence na analizo algoritmov za razvrščanje in dreves.

  • Uč lekcija 4 • Profiliranje kode Python

    Uporablja timeit, cProfile in memory_profiler za merjenje dejanskega delovanja. Povezuje teoretično zahtevnost z merljivim izvajalnim vedenjem Pythona.

  • Uč lekcija 5 • Prostorska zahtevnost in kompromisi

    Razlikuje pomožni prostor od celotnega prostora in raziskuje kompromise med časom in prostorom. Usmerja oblikovalske odločitve, ko so pomnilniške omejitve pomembne.

Poglavje 4Poglej podrobnosti

Linearne podatkovne strukture

  • Uč lekcija 1 • Primerjava zahtevnosti linearnih struktur

    Primerja časovno in prostorsko zahtevnost vseh obravnavanih linearnih struktur. Omogoča informirano izbiro strukture za probleme načrtovanja algoritmov.

  • Uč lekcija 2 • Enojno in dvojno povezani seznami

    Gradi razrede vozlišč in operacije seznama, vključno z vstavljanjem, brisanjem in prehajanjem. Uvede razmišljanje na osnovi kazalcev, bistveno za drevesa in grafe.

  • Uč lekcija 3 • Skladi: implementacija in uporaba

    Implementira sklade z uporabo seznamov in povezanih seznamov, nato jih uporabi na resničnih problemih. Prikazuje semantiko LIFO, uporabljeno pri rekurziji, razčlenjevanju in vračanju.

  • Uč lekcija 4 • Vrste, dvostranske vrste in prioritetne vrste

    Obravnava vrste FIFO, dvostranske vrste in prioritetne vrste s kopico. Pripravi udeležence za probleme BFS, razporejanja in požrešnih algoritmov.

  • Uč lekcija 5 • Polja in dinamična polja

    Obravnava statična polja, sezname Python kot dinamična polja in amortizirano spreminjanje velikosti. Vzpostavi osnovno strukturo, ki jo razširjajo vsi drugi linearni tipi.

Poglavje 5Poglej podrobnosti

Rekurzija in algoritmi za razvrščanje

  • Uč lekcija 1 • Kvadratični algoritmi za razvrščanje

    Implementira razvrščanje z mehurčki, izbiranjem in vstavljanjem z analizo korak za korakom. Zagotovi izhodišče O(n²), v primerjavi s katerim merimo hitrejše metode.

  • Uč lekcija 2 • Algoritmi za iskanje

    Implementira linearno iskanje in binarno iskanje z dokazi zahtevnosti. Povezuje iskanje z zahtevami urejenih podatkov in resničnimi težavami na razgovorih.

  • Uč lekcija 3 • Osnove rekurzije

    Opredeljuje osnovne primere, rekurzivne primere in klicni sklad. Gradi miselni model, potreben za prehajanje dreves in algoritme deli in vladaj.

  • Uč lekcija 4 • Linearno-časovno in hibridno razvrščanje

    Obravnava razvrščanje s štetjem, korensko razvrščanje in Timsort, uporabljen v vgrajenem razvrščanju Pythona. Razširi udeleženčevo orodjarno onkraj primerjalnega razvrščanja.

  • Uč lekcija 5 • Razvrščanje deli in vladaj

    Implementira razvrščanje z zlivanjem in hitro razvrščanje, izpelje njuno zahtevnost O(n log n). Prikazuje, kako rekurzija omogoča učinkovito razvrščanje v velikem obsegu.

Poglavje 6Poglej podrobnosti

Drevesa in hierarhične podatkovne strukture

  • Uč lekcija 1 • Binarna iskalna drevesa

    Implementira vstavljanje, iskanje in brisanje v BST s povprečno analizo O(log n). Prikazuje urejeno shranjevanje in pridobivanje podatkov z uporabo drevesne strukture.

  • Uč lekcija 2 • Drevesa prefixov in predponska drevesa

    Konstruira trie za vstavljanje, iskanje in ujemanje predpon nizov. Omogoča učinkovite rešitve za samodejno dokončanje in iskanje v slovarju.

  • Uč lekcija 3 • Binarna drevesa in prehajanja

    Opredeljuje terminologijo dreves in implementira prehode in-order, pre-order in post-order. Vzpostavi vzorec rekurzivnega prehajanja, uporabljen v vseh drevesnih algoritmih.

  • Uč lekcija 4 • Kopice in operacije s kopicami

    Gradi maksimalno in minimalno kopico, implementira heapify in urejanje s kopicami. Neposredno podpira implementacije prioritetnih vrst in požrešnih algoritmov.

  • Uč lekcija 5 • Uravnotežena drevesa: AVL in rdeče-črna

    Razlaga uravnoteženje z rotacijami v drevesih AVL in barvna pravila v rdeče-črnih drevesih. Zagotavlja zahtevnost O(log n) v najslabšem primeru za dinamične podatkovne nize.

Poglavje 7Poglej podrobnosti

Grafi in algoritmi na grafih

  • Uč lekcija 1 • Napredni grafovni problemi

    Obravnava močno povezane komponente, preverjanje dvodelnosti in osnove omrežnih pretokov. Razširi grafične spretnosti na kompleksne kategorije problemov iz resničnega sveta.

  • Uč lekcija 2 • Predstavitve grafov in terminologija

    Opredeljuje usmerjene, neusmerjene, utežene in ciklične grafe s predstavitvami s seznami sosednosti in matrikami. Vzpostavi temelj za vse implementacije algoritmov na grafih.

  • Uč lekcija 3 • Algoritmi najkrajših poti

    Implementira Dijkstrov in Bellman-Fordov algoritem za utežene grafe. Opremi udeležence za reševanje problemov usmerjanja in minimizacije stroškov.

  • Uč lekcija 4 • Minimalna vpeta drevesa

    Implementira Kruskalov in Primov algoritem z uporabo union-find in prioritetnih vrst. Rešuje probleme načrtovanja omrežij, ki zahtevajo povezljivost z minimalnimi stroški.

  • Uč lekcija 5 • Iskanje v širino in globino

    Implementira BFS z vrsto in DFS z rekurzijo ter skladom. Obravnava povezane komponente, zaznavanje ciklov in topološko urejanje.

Poglavje 8Poglej podrobnosti

Dinamično programiranje in napredne tehnike

  • Uč lekcija 1 • Požrešni algoritmi in vračanje

    Implementira požrešne strategije za razporejanje intervalov in Huffmanovo kodiranje ter vračanje za problem N-kraljic in podmnožice. Zaokroži osrednjo orodjarno za oblikovanje algoritmov.

  • Uč lekcija 2 • Tabulacija in DP od spodaj navzgor

    Gradi tabele DP iterativno za problem vračanja kovancev, vzpenjanja po stopnicah in poti po mreži. Odpravlja režijski čas rekurzije in pojasnjuje logiko prehajanja stanj.

  • Uč lekcija 3 • Uvod v dinamično programiranje

    Opredeljuje prekrivajoče se podprobleme in optimalno podstrukturo kot predpogoja za DP. Primerja DP z deli in vladaj, da pojasni, kdaj se posamezna metoda uporablja.

  • Uč lekcija 4 • Memoizacija in DP od zgoraj navzdol

    Pretvarja naivno rekurzijo v memoizirane rešitve z uporabo slovarjev in functools.lru_cache. Prikazuje dramatično zmanjšanje zahtevnosti pri Fibonaccijevih in podobnih problemih.

  • Uč lekcija 5 • Klasični vzorci DP

    Rešuje problem nahrbtnika, najdaljšega skupnega podzaporedja in razdalje urejanja. Uči predloge DP za večkratno uporabo, ki so uporabne za širok nabor vprašanj na razgovorih.

Certifikacija

Vaš veljaven certifikat o zaključku

Ta tečaj je namenjen vam:

  • Menjalec kariere: želi si strukturirane tehnične osnove za vstop v vloge programskega inženirstva.

  • Študent računalništva: potrebuje praktično vadbo kodiranja, ki presega tisto, kar nudijo predavanja.

  • Samouk razvijalec: zna graditi (programsko) aplikacije, a ima težave z algoritmičnim reševanjem problemov pod pritiskom.

  • Podatkovni analitik: pripravljen poglobiti programske veščine proti odgovornostim na inženirski ravni.

  • Nedavni diplomant: pripravlja se na tehnične razgovore v konkurenčnih tehnoloških podjetjih kmalu.

  • Programer hobist: radoveden, kako so profesionalni programski sistemi dejansko zasnovani navznotraj.

Kaj pravijo naši učenci

Vaše predavanja so popolna. Kupil sem enoletni paket in končno imam priložnost spremljati različne teme, ki me zanimajo, ne da bi moral menjati platformo... hvala za vse, kar počnete, že sem vas priporočil drugim ljudem...
Giulio Carlo
Giulio CarloŠtudent digitalnega marketinga
Všeč mi je, kako so lekcije neposredne in kako lahko spreminjam poglavja ter preskočim vsebino, ki je ne potrebujem.
Mariana Ferres
Mariana FerresŠtudentka fotografije
Všeč mi je vsebina in način predstavitve ter prepis videoposnetkov, kar pospeši proces!
Luciana Alvarenga
Luciana AlvarengaŠtudentka oblikovanja nohtov
Platforma je hitra in enostavna za uporabo. Raznolikost vsebine in dopolnilni videoposnetki zelo pomagajo pri učenju.
André Felipe
André FelipeŠtudent prompt inženirstva

Glavne usposobitve

Pogosta vprašanja

Kdo je Dedika?

Ali potrdilo velja v Slovenija?

Ali so tečaji brezplačni?

Kakšna je obremenitev tečaja?

Kakšni so tečaji?

Kako potekajo tečaji?

Kakšno je trajanje tečajev?

Kakšna je cena tečajev?

Kaj je EAD ali spletni tečaj in kako deluje?

PDF tečaj