Veze, linkovi
Kompjuter biblioteka
Korpa

 

Access

Alternativna učenja

Android

Animacija

Antropologija

Apple - MAC OS X

Arheologija

Arhitektura

Astrologija

Astronomija

Audio kursevi + knjige

Audio, Multimedia, Video

Autobiografija

AutoCad, ArchiCAD, SolidWorks, Catia, Pro/Engineer

Automobili

Bajke

Baze podataka

Biografija

Biološke nauke

Botanika

C++ Visual C++ C#

Cloud

CSS

Dečije knjige

Delphi

Digitalna fotografija

Dizajn

Django

Domaće pripovetke

Domaći roman

Drama

E-knjiga

E-komerc

ECDL

Ekologija

Ekonomija

Elektrotehnika

Enciklopedija

Esejistika

Etika

Fantastika

Film

Filologija

Filozofija

Fizika

Fotografija

FULL STACK DEVELOPMENT

Geografija

Geologija

GOOGLE

Grafika, Dizajn, Štampa

Građevinarstvo

Hardver

Hemija

Hidrotehnika

Hobi

Horor

Humor

Internet

Intervju

Istorija

Istorija i teorija književnosti

Istorija umetnosti

Istorijski roman

Java

JavaScript

Joomla

jQuery

Knjiga posle posla - Beletristika i ostala izdanja

Knjižare i naše knjige

Književna kritika

Kuvari, hrana i piće

Leksikografija

Lingvistika

Ljubavni roman

logo

Magija

Marketing

Mašinsko učenje

Mašinstvo

Matematika

Medicina

Memoari

Menadžment

Modeliranje podataka

Monografija

Mreže

MS Office

Muzika

Nagrađivanje knjige

Naučna fantastika

Obrada teksta

OFFICE 2013

OpenOffice.org

Operativni sistemi

Oracle

Organizacione nauke

Pedagogija

PHP I MYSQL

Pisci u medijima

Ples

Poezija

Politika

Poljoprivreda

Popularna medicina

Popularna nauka

Popularna psihologija

Posao

Pozorište

Pravo

Pravoslavlje

Primenjene nauke

Pripovetke

Prirodne nauke

Priručnik

Programiranje

Psihologija

Publicistika

Putopis

Python programiranje

Raspberry PI

Rečnici

Religija

Robotika

Roman

Ruby i Ruby on Rails

Satira

Saveti

Serija Roberta C. Martina

Sertifikati

Slikarstvo

Socijalna mreža - Facebook

Sociologija

Sport

Sport i hobi

SQL Server

Statistika

Strip

Tabele

Tableti

Tehnologija

Telekomunikacije

Triler

Turizam

Twitter

Udžbenici

Umetnost

Unix, Linux

Urbanizam

UX DIZAJN

Veštačka inteligencija

Visual Basic .NET, VBA, V. Studio

Web design

Windows

Windows 7

Windows 8

WordPress

Zaštita i sigurnost

Zoologija

 

Vesti

Na današnji dan, 2. februara Džojs i Šantić

1882. - Rodjen je u Irskoj Džejms Džojs (James Joyce), književnik. 1895. - Umro je srpski pisac Ljubomir Nenadović. 1924. - Umro je srpski pisac Aleksa Šantić.

Ceo tekst Ceo tekst

Najnovije vesti

Kako mi je ChatGPT pomogao u kreiranje aplikacije za plasman knjiga

 

 

 

Želim u React Native-u da kreiram aplikaciju za plasman knjiga nekoliko različitih izdavača. Kako da počnem? Da biste počeli sa kreiranjem aplikacije za plasman knjiga u React Native-u, preporučujem sledeće korake: Najpre, potrebno je da imate solidno poznavanje JavaScript-a i React-a. Ako to niste sigurni, preporučujem da se malo educirate o ovim tehnologijama pre nego što počnete sa kreiranjem aplikacije. Potrebno je da instalirate React Native CLI na vaš računar. Ovo će vam omogućiti da kreirate novi projekat i da ga pokrenete na vašem mobilnom uređaju ili emulatoru. Sledeći korak je da kreirate novi projekat pomoću React Native CLI-a i da ga pokrenete na vašem uređaju ili emulatoru. Ovo će vam pružiti osnovni okvir za vašu aplikaciju. Sada možete početi sa kreiranjem komponenti vaše aplikacije. Preporučujem da koristite neki od popularnih komponentnih biblioteka kao što su React Native Elements ili Native Base. Nakon što ste kreirali komponente, potrebno je da ih povežete sa podacima koji će se prikazivati. Za to možete koristiti neki od popularnih biblioteka za upravljanje stanjem kao što su Redux ili MobX. Konačno, potrebno je da istestirate vašu aplikaciju i da je objavite na Google Play ili App Store. Šta je potrebno uraditi da se instalira i pokrene React Native CLI? Da li je to prvi korak? Da, instaliranje i pokretanje React Native CLI-a je prvi korak u kreiranju aplikacije u React Native-u. Da biste instalirali React Native CLI, potrebno je da imate Node. js i npm (Node Package Manager) instalirane na vašem računaru. Ako ih nemate, možete ih preuzeti sa zvaničnog sajta Node. js (https://nodejs. org/en/). Kada ste instalirali Node. js i npm, potrebno je da otvorite terminal i da unesete sledeću komandu: npm install -g react-native-cli Ova komanda će instalirati React Native CLI globalno na vaš računar, što će vam omogućiti da kreirate nove projekte iz bilo kog direktorijuma. Nakon što ste instalirali React Native CLI, potrebno je da kreirate novi projekat pomoću komande: react-native init <project-name> Ova komanda će kreirati novi projekat sa nazivom koji ste uneli. Da biste pokrenuli projekat, potrebno je da uđete u direktorijum projekta i pokrenete komandu: react-native run-ios ili react-native run-android Ova komanda će pokrenuti aplikaciju na vašem iOS ili Android uređaju (ukoliko je povezan sa računarom) ili emulatoru.        
 
   

Pitanja i odgovori ChatGPT za Rust

 

 

 

Rust se koristi za kreiranje alatki, veb aplikacije, rad na serverima i embedded razvoj. Alatke: Rust je popularan za kreiranje alatki jer je on siguran i performantan. Rust je poznat po svojoj sigurnosti jer se koristi sistem tipizacije i mehanizam za upravljanje memorijom, što smanjuje mogućnost grešaka u kodu. Rust alatke su često korišćene za automatizaciju rada, razvoj sigurnosnih alata, i kreiranje alata za rad sa mrežama. Web aplikacije: Rust takođe se koristi za razvoj web aplikacija, uglavnom u kombinaciji sa web framework-om kao što je Rocket ili Actix. Rust je dobar izbor za razvoj web aplikacija jer je performantan i siguran, što je važno za aplikacije koje moraju da rade sa velikim opterećenjima i podaci. Rad na serverima: Rust se takođe koristi za razvoj server-side aplikacija, jer je performantan i siguran, što je važno za aplikacije koje moraju da rade sa velikim opterećenjima i podaci. Rust se često koristi za razvoj backend-a za web aplikacije, kao i za razvoj serverskih alata. Embedded razvoj: Rust se često koristi za razvoj embedded sistema, koji su uglavnom mali uređaji sa ograničenim resursima. Rust je idealan izbor za embedded razvoj jer je performantan i siguran, što je važno za uređaje koji moraju da rade sa ograničenim resursima. Rust se često koristi za razvoj firmware-a za IoT uređaje i embedded sisteme.  Koje svetske kompanije koriste Rust Rust se koristi u mnogim svetskim kompanijama, u različitim industrijama, ovde su neke od njih: Mozilla: Mozilla je kompanija koja je razvila Firefox web browser, i koja je takođe jedan od glavnih doprinosilaca Rust jeziku. Mozilla koristi Rust za razvoj Firefox-a, kao i za razvoj drugih projekata. Dropbox: Dropbox koristi Rust za razvoj svojih serverskih aplikacija, kao što su sistemi za skladištenje i sinhronizaciju podataka. Amazon: Amazon koristi Rust za razvoj svojih serverskih aplikacija, kao što su sistemi za upravljanje podacima. Microsoft: Microsoft je počeo da koristi Rust za razvoj sistemskih aplikacija kao što su Azure IoT Edge i Windows Terminal. Google: Google koristi Rust za razvoj svojih projekata kao što je Fuchsia, novi operativni sistem koji se razvija u Google-u. Sentry: Sentry koristi Rust za razvoj svojih alata za praćenje grešaka i analizu performansi aplikacija. Coursera: Coursera koristi Rust za razvoj svojih serverskih aplikacija koje su potrebne za rad sa velikim količinama podataka. npm: npm, popularna platforma za deljenje i korišćenje JavaScript paketa, koristi Rust za razvoj svojih serverskih aplikacija. Ova lista nije konačna, postoje još mnogo kompanija širom sveta koje koriste Rust za razvoj svojih aplikacija. Učenje programskog jezika Rust iz knjige, na kursu ili kroz primere Postoji više načina na koje možete da naučite Rust, kao što su: Učenje sa Rust sajta: Rust sajt ima izvrsnu dokumentaciju koja je dostupna za početnike i napredne korisnike. Sajt sadrži tutoriale, vodiče i primeri koji će vam pomoći da naučite osnove Rust-a, kao i da razumete napredne koncepte. Učenje iz knjige: Postoji nekoliko knjiga koje se bave Rust-om i koje su dostupne za preuzimanje ili kupovinu. One obično imaju dobro struktuirani pristup sa primerima i vežbama koji će vam pomoći da se bolje upoznate sa jezikom. Učenje na kursu: Postoji nekoliko online kurseva koji se bave Rust-om, koji su dostupni na platformama kao što su Coursera, Udemy i Codecademy. Oni obično imaju video predavanja, vežbe i projekte koji će vam pomoći da se bolje upoznate sa jezikom. Učenje kroz primere: Jedan od najboljih načina da naučite Rust jeste da ga praktikujete kroz primere. Na internetu postoji velika zbirka otvorenog koda projekata napisanih u Rust-u, koji će vam pomoći da se bolje upoznate sa jezikom i da naučite kako da koristite različite biblioteke i alate. Svaki od ovih načina ima svoje prednosti i nedostatke i to koji od ovih načina će vam najviše odgovarati zavisi od vašeg iskustva sa programiranjem i vaših ličnih preferencija.   Čitanje dokumentacije za Rust Čitanje dokumentacije za Rust je važan deo procesa učenja ovog jezika. Rust sajt ima izvrsnu dokumentaciju koja je dostupna za početnike i napredne korisnike. Dokumentacija je podeljena u nekoliko kategorija, kao što su: Tutorials: Ovde možete pronaći tutoriale koji će vam pomoći da naučite osnove Rust-a, kao što su promenljive, tipovi podataka, kontrole toka i funkcije. Guides: Ovde možete pronaći vodiče koji će vam pomoći da razumete napredne koncepte, kao što su upravljanje memorijom, generički programiranje, i rad sa modulima i paketima. Reference: Ovde možete pronaći referencu za Rust standardnu biblioteku, kao i za druge popularne biblioteke i alate. Book: Ovde možete pronaći online verziju knjige "The Rust Programming Language" koja sadrži detaljne informacije. o Rust-u. Blog: Ovde možete pronaći najnovije novosti i obaveštenja vezana za Rust. Community: Ovde možete pronaći različite resurse koji su kreirani od strane Rust zajednice, kao što su različiti forumi, grupe na društvenim mrežama i meetup grupe. Svakako čitanje dokumentacije je važan deo procesa učenja Rust-a, jer će vam pomoći da razumete koncepte i funkcionalnosti jezika, kao i da pronađete odgovore na eventualna pitanja. Rust standardna biblioteka  Rust standardna biblioteka je skup alata i funkcionalnosti koji su dostupni za korišćenje bez potrebe za instaliranjem dodatnih biblioteka. Ona sadrži mnogo različitih modula koji se koriste za rad sa različitim stvarima, kao što su: rad sa podacima (stringovi, nizovi, kolekcije) rad sa datotekama i direktorijima rad sa mrežom rad sa thread-ovima i paralelizacijom rad sa error handling-om rad sa matematikom rad sa datumima i vremenom Ova standardna biblioteka omogućava programerima da koriste Rust za razvoj različitih vrsta aplikacija bez potrebe za dodatnim bibliotekama. Ona je dobro dokumentovana i dostupna preko Rust dokumentacije, gde možete pronaći informacije o svakom od modula i kako da ih koristite. Zašto da koristim Rust za razvoj veb aplikacije Rust je dobar izbor za razvoj veb aplikacija zbog više razloga: Sigurnost: Rust je poznat po svojoj sigurnosti, jer koristi sistem tipizacije i mehanizam za upravljanje memorijom, što smanjuje mogućnost grešaka u kodu. Ovo je važno za veb aplikacije, jer one često rade sa podacima korisnika i moraju da budu sigurne. Performanse: Rust je performantan programski jezik koji se može koristiti za razvoj aplikacija koje moraju da rade sa velikim opterećenjima i podacima. Ovo ga čini idealnim za veb aplikacije koje imaju visok nivo korisničkog opterećenja. Skalabilnost: Rust se lako može koristiti za razvoj skalabilnih aplikacija, što je važno za veb aplikacije koje se očekuje da rastu sa vremenom. Web framework-ovi: Postoji nekoliko web framework-ova koji su dostupni za Rust, kao što su Rocket, Actix, i Nickel. Oni omogućavaju lako razvoj web aplikacija u Rust-u. Community: Rust ima aktivnu i rastuću zajednicu koja je u mogućnosti da pruži podršku i pomogne u razvoju aplikacije. Adrese Rusta na društvenim mrežama Evo nekoliko adresa Rust zajednice na društvenim mrežama: Reddit: https://www. reddit. com/r/rust Discord: https://discord. gg/rust-lang Twitter: https://twitter. com/rustlang GitHub: https://github. com/rust-lang Meetup: https://www. meetup. com/pro/Rust-Lang/ Ove adrese su samo neke od mnogih koje postoje na društvenim mrežama, nastavite da tražite, i pronađite one koji su najviše aktivni u vašoj oblasti. Takođe, postoje grupe i forumi na društvenim mrežama gde se razvijaju različiti projekti napisani u Rust-u, kao što je web development, embedded development, i game development. Ovde možete pronaći i ljude koji se bave istim temama kao što su i vi, i razmeniti iskustva. 10 osnovnih pitanja prilikom intervjua za posao Evo nekoliko primer pitanja koja se često postavljaju tokom intervjua za poziciju koja zahteva znanje Rust-a: Možete li objasniti koncept "ownership" u Rust-u? Kako Rust upravlja sa memorijom i kako se razlikuje od drugih jezika? Možete li objasniti koncept "lifetime" u Rust-u? Kako Rust podržava paralelizam i multithreading? Možete li objasniti koncept "macro-a" u Rust-u? Možete li objasniti koncept "trait-a" u Rust-u i kako se razlikuje od interfejsa u drugim jezicima? Kako Rust podržava generičke tipove i kako se razlikuje od drugih jezika? Možete li pokazati primer rada sa error handling-om u Rust-u? Možete li objasniti koncept "cargo" i kako se koristi za razvoj Rust aplikacija? Možete li pokazati primer rada sa web framework-om u Rust-u? Odgovori na ova pitanja mogu varirati, i zavise od vašeg iskustva i znanja u Rust-u, ali važno je da budete spremni da objasnite koncepte i da pokazate primer rada. Takođe, pitajte i vi intervjuera o njegovim iskustvima sa Rust-om i kako on planira da ga koristi u projektu. Kako pisati Rust kod pridržavajući se dobrih praksi i konvencija Rust zajednice Da bi ste pisali Rust kod pridržavajući se dobrih praksi i konvencija Rust zajednice, postoji nekoliko stvari koje možete uraditi: Koristiti Rust standardnu biblioteku: Rust standardna biblioteka sadrži mnoge korisne alate i funkcionalnosti koje su dostupne bez potrebe za instaliranjem dodatnih biblioteka. Koristite ih kada je to moguće umesto da koristite treće strane biblioteke. Koristiti Rust tipove: Rust koristi sistem tipizacije koji vam omogućava da precizno definišete tipove podataka. To će vam pomoći da izbegnete greške u kodu i da povećate performanse. Koristiti Rust error handling: Rust ima jedinstven mehanizam za error handling koji se zasniva na Result tipu i try!/unwrap() macro-u. To će vam pomoći da lakše upravljate greškama u kodu. Koristiti Rust lifetime-e: Rust koristi mehanizam za upravljanje vremenom trajanja promenljivih koji se zasniva na lifetime-ima. To će vam pomoći da izbegnete greške u kodu i da povećate sigurnost. Koristiti Rust generics: Rust podržava generičke tipove koji vam omogućavaju da napisete kod koji je opšteg karaktera. To će vam pomoći da izbegnete ponavljanje koda i da povećate performanse. Koristiti Rust macro-e: Rust podržava macro-e koji vam omogućavaju da napravite generičke i fleksibilne kodove. To će vam pomoći da povećate produktivnost i da smanjite ponavljanje koda. Koristiti konvencije naziva: Rust zajednica ima određene konvencije naziva za promenljive, funkcije i ostalo. Pridržavajte se tih konvencija kako bi vaš kod bio lakše čitljiv i razumljiv. Koristiti linters, formaters i testiranje: Rust zajednica koristi alate kao što su Clippy, rustfmt, i testiranje kao što su cargo test ili rust-test, koji pomažu u poboljšanju kvaliteta i sigurnosti koda.     Šta je Rust toolchain Rust toolchain je komplet alata koji se koriste za razvoj i rad sa programskim jezikom Rust. To uključuje kompajler "rustc" koji kompajlira Rust kod u izvršni kod, "cargo" koji je alat za rukovanje projektima i paketima, kao i druge alate kao što su "rustdoc" za generisanje dokumentacije i "rustfmt" za formatiranje koda. Rust toolchain omogućava razvojačima da kreiraju sigurne, performansi-osetljive i efikasne programe, koji su u potpunosti kompatibilni sa operativnim sistemima koji podržavaju Rust. Možete li objasniti koncept "ownership" u Rust-u? Rust ima koncept vlasništva koji se koristi za upravljanje pamćenjem i sprečavanje nedosljednosti u pogledu pristupa podacima. Svaki objekt u Rust-u ima vlasnika (owner) koji je odgovoran za alociranje i oslobađanje memorije koju objekt zauzima. Vlasnik je jedini koji ima pravo na modifikaciju objekta. Kada vlasnik objekta nestane (npr. kada varijabla koja sadrži referencu na objekt izlazi iz scope-a), memorija koju objekt zauzima se automatski oslobađa. Ovo se zove "automatic memory management". Rust također ima koncept "borrow", koji omogućuje da drugi objekti dobiju privremenu referenca na objekt bez da postanu njegovi vlasnici. Ova referencia se naziva "borrow" i može se koristiti za čitanje ili promatranje objekta, ali ne i za modifikaciju. Koncept vlasništva i borrow-a omogućuje Rust-u da se izbegne česti problemi sa pamćenjem u drugim programskim jezicima, kao što su "dangling pointers" i "use-after-free" greške. Kako Rust upravlja sa memorijom i kako se razlikuje od drugih jezika? Rust upravlja memorijom koristeći koncept vlasništva i borrow-a. Svaki objekt u Rust-u ima jednog vlasnika koji je odgovoran za alociranje i oslobađanje memorije koju objekt zauzima. Kada vlasnik objekta nestane (npr. kada varijabla koja sadrži referencu na objekt izlazi iz scope-a), memorija koju objekt zauzima se automatski oslobađa. Ovo se zove "automatic memory management" ili "garbage collection". Međutim, Rust ima nešto što se zove "ownership model" koji se razlikuje od klasičnih garbage collector-a. Ownership model koristi koncept vlasništva i borrow-a da bi se osiguralo da se memorija ispravno oslobodi, a da se istovremeno izbegne problemi sa nedoslednošću u pristupu podacima. Drugim riječima, Rust ne koristi garbage collector koji automatski oslobađa memoriju kada se više ne koristi, umesto toga, Rust se koristi ownership modelom koji osigurava da se memorija ispravno oslobodi, a da se pritom izbegnu problemi sa nedoslednošću u pristupu podacima. Rust se također razlikuje od drugih programskih jezika po tome što kompajler ima static type-checking, što pomaže da se izbegnu potencijalne greške u kodu. Rust se takođe razlikuje od drugih jezika po tome što je izrazito siguran u pogledu sigurnosti memorije i multithreading-a, što ga čini idealnim za kritične sisteme koji moraju biti stabilni i sigurni. Možete li objasniti koncept "lifetime" u Rust-u? Lifetime u Rust-u je koncept koji se odnosi na vreme trajanja referenci na objekte u pamćenju. Svaka referencia ima svog lifetime-a koji označava period vremena tokom kojeg referenca postoji i može se koristiti. Lifetime-i se koriste da se osigura da se referenca koja se koristi ne odnosi na objekt koji se više ne nalazi u pamćenju. Rust kompajler koristi lifetime-e da bi se osiguralo da se izbegne problem "dangling pointer" (pokazivač na objekt koji se više ne nalazi u pamćenju). Lifetime-i se koriste za "borrow checker" koji proverava da li se referenci koristi nakon što je objekt koji referencira više nije dostupan. Lifetime-i se mogu eksplicitno označiti u kodu koristeći anotacije, međutim, u većini slučajeva, Rust kompajler može automatski odrediti lifetime-e koristeći "inference" (inferiranje). Na primer, ako imamo varijablu a koja referencira objekt, i varijablu b koja referencira objekt koji je referenciran od strane varijable a, tada kompajler može automatski odrediti da lifetime varijable b počinje kada počinje lifetime varijable a, i završava kada završi lifetime varijable a. Koncept lifetime-a je važan za sigurnost u Rust-u, jer omogućava da se izbegne problem "dangling pointer" ili "use-after-free" greške. Kako Rust podržava paralelizam i multithreading? Rust podržava paralelizam i multithreading kroz korištenje različitih mehanizama, uključujući "thread" i "rayon" biblioteke. "Thread" biblioteka omogućuje kreiranje i upravljanje više niti rada (threads) u aplikaciji, dok "rayon" biblioteka omogućuje lako paraleliziranje for petlji i drugih kodova koji su kandidati za paralelizaciju. Rust također ima mehanizam za upravljanje memorijskim pristupom koji se zove "Ownership" model koji omogućuje sigurnu i efikasnu upotrebu paralelnih niti bez rizika od "data race" problema. Možete li objasniti koncept "macro-a" u Rust-u? U Rustu, makroi su specijalni tipovi izraza koji se prevode u kod prije kompilacije. Oni su korišteni za automatiziranje ponavljajućih i kompleksnih operacija, kao što su kreiranje getter i setter metoda, kreiranje konstruktora itd. Postoji dva tipa makroa u Rust-u: "macro by example" (mbe) - koriste se za generiranje koda prema primjeru, koji se unosi kao argument. "macro by procedural macro" (mbp) - koriste se za generiranje koda prema procesu koji se opisuje u kodu. Makroi se pozivaju koristeći simbol ! (bang) nakon kojeg slijedi ime makroa. Npr. println!("Hello, world!"); Makroi se koriste za automatiziranje kodiranja, smanjivanje ponavljanja koda i povećavanje izražajnosti koda. Međutim, treba biti oprezan s njima jer oni mogu biti zbunjujući i teško debuggable u slučaju greške. Detaljnije objasni "macro by axample" na srpskom jeziku "Makro po primeru" (macro by example, mbe) je vrsta makroa u Rust-u koja se koristi za generiranje koda prema primeru koji se unosi kao argument. Ovaj tip makroa se koristi za automatiziranje ponavljajućih i kompleksnih operacija, kao što su kreiranje getter i setter metoda, kreiranje konstruktora itd. Na primer, ako želimo automatizirati kreiranje getter i setter metoda za varijablu "x", možemo koristiti mbe makro: macro_rules! my_getter_setter {     ($name:ident) => {         fn get_x() -> i32 {             x         }         fn set_x(val: i32) {             x = val;         }     } } Pozivamo ga ovako: let x = 5; my_getter_setter!(x); Ovo će generirati sledeći kod: fn get_x() -> i32 {     x } fn set_x(val: i32) {     x = val; } Mbe makroi su korisni za automatiziranje kodiranja i smanjenje ponavljanja koda. Međutim, treba biti oprezan s njima jer oni mogu biti zbunjujući i teško debuggable u slučaju greške. U ovom primeru, makro je definiran kao macro_rules! i unutar njega se definira pravilo koje se sastoji od dva dela: ulaznog parametra i izlaznog koda. Ulazni parametar je $name:ident koji označava da će se koristiti identifikator kao argument, a izlazni kod su dve funkcije koje su kreirane na temelju argumenta.    
 
   

Vidimo se na 65. Sajmu knjiga u Beogradu

 

 

 

Posle 2 godine neodržavanja, vidimo se na 65. Sajmu knjiga u Beogradu. Na starom mestu: Hala I Galerija Do nas se dolazi pokretnim stepenicama. Knjige koje su izašle između dva Sajma knjiga: C++ 20 i 23, jedna lekcija dnevno, prevod IX izdanja MySQL radionica: Praktičan vodič za rad sa podacima i bazama podataka Mašinsko učenje uz PyTorch i Scikit-Learn Pet linija koda - refaktorisanje, kada i kako Savremeni marketing vođen veštačkom inteligencijom C# 10 i . NET 6 moderan međuplatformski razvoj Linux za mreže CompTIA Security+: SY0-601 vodič za sertifikaciju Čisto majstorstvo, discipline, standardi i etika ujka Boba CCNA 200-301 zvanični vodič za sertifikat, knjiga 2 Angular kuvar PHP 8 objekti,obrasci i praksa objektno orijentisan pristup Čist C++ 20, Obrasci održivog razvoja softvera i najbolje prakse Otkrivanje jednostavnosti - funkcionalno programiranje Testiranje JavaScript aplikacija Čisto agilno - razvoj softvera, agilne vrednosti i principi Robert C. Martin C#9 i . NET 5 arhitektura softvera, prevod drugog izdanja Google Ads, definitivni vodič prevod šestog izdanja Algoritmi veštačke inteligencije, edicija Grokking Vodič za dizajniranje frejmvorka Vue. js 3 kuvar Principi lepog veb dizajna, prevod četvrtog izdanja CCNA 200-301 Zvanični vodič za sertifikat, knjiga 1 Čista arhitektura, Praktična rešenja softverske arhitekture legendarnog Roberta C. Martina,ujka Boba Node. js veb razvoj - prevod petog izdanja GO od početnika do profesionalca 40 algoritama koje bi svaki programer trebalo da zna Django 3 kroz primere, prevod III izdanja WordPress kreiranje veb aplikacija JavaScript funkcionalno programiranje, drugo izdanje Python mašinsko učenje, prevod trećeg izdanja Java 11 i 12, naučite za 21 dan, prevod osmog izdanja C# 8 i . NET Core 3, moderno međuplatformsko programiranje, prevod IV izdanja Uvod u digitalni marketing Pragmatični programer: vaš put do stručnosti
 
   

Najpopularniji kompleti u 2022. godini

 

 

 

Cene knjiga u kompletima su do 40% niže od cena u knjižarama. Ukoliko želite da za vas napravimo komplet koji nije na spisku, javite nam se, rado ćemo vam izaći u susret. Ovo su najtraženiji kompleti od početka godine do danas: 1.   2 KNJIGE ZA CCNA 200-301Cena kompleta: 4. 100 dinara, ušteda 1. 730 dinara 2. HIT KNJIGE UJKA BOBA: ČISTA ARHITEKTURA I JASAN KODCena kompleta: 3. 600 dinara, ušteda: 1. 420 dinara 3. KOMPLET ALGORITMICena kompleta: 2. 800 dinara, ušteda: 1. 380 dinara   4. REFAKTORISANJE U 3 KNJIGE Cena kompleta: 4. 400  dinara, ušteda: 1. 430 dinara   5. Komplet za veb dizajnere Cena kompleta: 2. 650 dinara, ušteda: 1. 750 dinara   6. KOMPLET C#10 I C# PROJEKTNI OBRASCI Cena kompleta: 3. 400 dinara, ušteda: 1. 990 dinara   7. KOMPLET 3 KNJIGE ZA DIGITALNI MARKETING Cena kompleta: 4. 000 dinara, ušteda: 2. 600 dinara   8. LINUX KUVARI Cena kompleta: 3. 900 dinara, ušteda: 1. 570 dinara   9. Komplet - COMPTIA SECURITY+ I ZAŠTITA OD ZLONAMERNIH PROGRAMACena kompleta: 3. 000 dinara, ušteda: 1840 dinara   10. KOMPLET ANGULAR KUVAR I TYPESCRIPT Cena kompleta: 3. 000 dinara, ušteda: 2. 060 dinara   Spisak svih kompleta kožete da pronađete korišćenjem sledećeg linka: SVI KOMPLETI                  
 
   

Do kraja maja, uštedite 1.000 dinara po knjizi

 

 

 

Do kraja maja po svakoj kupljenoj knjizi ćete uštedeti po 1. 000 dinara u odnosu na knjižarske cene. Kliknite naslov koji vas interesuje da biste dobili više informacija o knjizi, pre nego što je naručite. Naslov Akcijska cena Cena u knjižarama Linux za mreže 1420 rsd 2420 rsd CompTIA Security+: SY0-601 vodič za sertifikaciju 1420 rsd 2420 rsd CCNA 200-301 zvanični vodič za sertifikat, knjiga 2 1860 rsd 2860 rsd Angular kuvar 1640 rsd 2640 rsd PHP 8 objekti,obrasci i praksa objektno orijentisan pristup 1970 rsd 2970 rsd Čist C++ 20, Obrasci održivog razvoja softvera i najbolje prakse 1420 rsd 2420 rsd Otkrivanje jednostavnosti - funkcionalno programiranje 1640 rsd 2640 rsd Testiranje JavaScript aplikacija 1420 rsd 2420 rsd C#9 i . NET 5 arhitektura softvera, prevod drugog izdanja 1970 rsd 2970 rsd Vodič za dizajniranje frejmvorka 1750 rsd 2750 rsd Vue. js 3 kuvar 1530 rsd 2530 rsd Principi lepog veb dizajna, prevod četvrtog izdanja 1420 rsd 2420 rsd CCNA 200-301 Zvanični vodič za sertifikat, knjiga 1 1970 rsd 2970 rsd Node. js veb razvoj - prevod petog izdanja 1750 rsd 2750 rsd GO od početnika do profesionalca 1970 rsd 2970 rsd Django 3 kroz primere, prevod III izdanja 1530 rsd 2530 rsd WordPress kreiranje veb aplikacija 1420 rsd 2420 rsd JavaScript funkcionalno programiranje, drugo izdanje 1310 rsd 2310 rsd Java 11 i 12, naučite za 21 dan, prevod osmog izdanja 1640 rsd 2640 rsd SQL za analizu podataka 1200 rsd 2200 rsd C# i . NET Core projektni obrasci 1090 rsd 2090 rsd GraphQL i React Full-Stack veb razvoj 1850 rsd 2310 rsd Laravel - Radni okvir za izradu modernih PHP aplikacija 1420 rsd 2420 rsd Administriranje Linux sistema - kuvar 1970 rsd 2970 rsd Zaštita od zlonamernih programa (Malware analysis) 1420 rsd 2420 rsd Amazon veb servisi u akciji, prevod drugog izdanja 1420 rsd 2420 rsd Čisto majstorstvo, discipline, standardi i etika ujka Boba 1420 rsd 2420 rsd C++ jedna lekcija dnevno 1860 rsd 2860 rsd HTML5, CSS3 I JavaScript za razvoj veb strana 1970 rsd 2970 rsd Za knjige sa spiska ne važi 10% dodatnog popusta za 2 i više kupljenih knjiga. Akcija traje do kraja maja.
 
   

Najtraženiji kompleti u 2021. godini

 

 

 

Za nama je veoma uspešna godina u kojoj smo objavili 14 novih knjiga. Ovo su najtraženiji kompleti knjiga: 3 knjige "ujka Boba"   Cena kompleta: 4. 960 dinara LINK ZA NARUČIVANJE KOMPLET ALGORITMI Cena kompleta: 2. 800 dinara LINK ZA NARUČIVANJE  DIGITALNI MARKETING Cena kompleta: 2. 800 dinara LINK ZA NARUČIVANJE C++ KOMPLET Cena kompleta: 3. 450 dinara LINK ZA NARUČIVANJE  ANGULAR I TYPESCRIPT CENA KOMPLETA: 3. 000 dinara LINK ZA NARUČIVANJE   Funkcionalno programiranje za kroćenje složenog softvera. Funkcionalno programiranje je paradigma za razvoj softvera sa boljim performansama.     VIŠE O KNJIGAMA I LINK ZA NARUČIVANJE KOMPLET ARHITEKTURA SOFTVERA Usavršite najbolju praksu za kreiranje ponovo upotrebljivih. NET radnih okvira, biblioteka i komponenti. Izgradnja softverskih rešenja upotrebom mikroservisa, DevOps-a i projektnih obrazaca za Azure VIŠE O KNJIGAMA I LINK ZA NARUČIVANJE  KOMPLET OSNOVE VEŠTAČKE INTELIGECIJE I MAŠINSKOG UČENJA Kreirajte AI aplikacije u Pythonu i postavite temelje vašoj karijeri u nauci o podacima „Python mašinsko učenje (treće izdanje)“ je sveobuhvatan vodič za mašinsko učenje i duboko učenje upotrebom Pythona. VIŠE O KNJIGAMA I KORPA ZA NARUČIVANJE
 
   

Sajamski popust 25 - 50 %

 

 

 

Sajamski popust traje do kraja oktobra + 10% dodatnog popusta za dve i više knjiga. 50 najtraženijih knjiga ove godine.     Pragmatični programer: vaš put do stručnosti 1500 Uvod u digitalni marketing 1600 C# 8 i . NET Core 3, moderno međuplatformsko programiranje, prevod IV izdanja 2200 Čista arhitektura, Praktična rešenja softverske arhitekture legendarnog Roberta C. Martina,ujka Boba 1800 40 algoritama koje bi svaki programer trebalo da zna 1500 Laravel - Radni okvir za izradu modernih PHP aplikacija 1800 Administriranje Linux sistema - kuvar 2200 Google Ads, definitivni vodič prevod šestog izdanja 1650 WordPress 5 u celosti, VII izdanje 1500 Algoritmi veštačke inteligencije, edicija Grokking 1650 Vue. js 3 kuvar 1900 Testiranje JavaScript aplikacija 1800 Principi lepog veb dizajna, prevod četvrtog izdanja 1800 Node. js veb razvoj - prevod petog izdanja 2000 C#9 i . NET 5 arhitektura softvera, prevod drugog izdanja 2200 101 princip za dobar UX dizajns 1500 Kali Linux - Testiranje neprobojnosti veba - treće izdanje 1500 PHP 7, MYSQL I JAVASCRIPT U JEDNOJ KNJIZI 2200 Objektno-orijentisan JavaScript treće izdanje 1700 GO od početnika do profesionalca 2200 C# i . NET Core projektni obrasci 1500 C++ jedna lekcija dnevno 2000 HTML5, CSS3 I JavaScript za razvoj veb strana 2200 Amazon veb servisi u akciji, prevod drugog izdanja 1800 Uvod u Python, automatizovanje dosadnih poslova 1600 Excel 2013 na dlanu 1600 SPSS 20 Analiza bez muke 1100 Naučite Spring 5 1800 Naučite Unity 5. x 1900 Python razvoj mikroservisa 1100 WordPress kreiranje veb aplikacija 1800 Django 3 kroz primere, prevod III izdanja 1900 SQL za analizu podataka 1600 GraphQL i React Full-Stack veb razvoj 1700 Zaštita od zlonamernih programa (Malware analysis) 1800 Naučite Linux Shell skriptovanje, drugo izdanje 1200 JavaScript funkcionalno programiranje, drugo izdanje 1700 Python mašinsko učenje, prevod trećeg izdanja 2200 Osnove veštačke inteligencije i mašinskog učenja 1500 Naučite Bootstrap 4, drugo izdanje 1100 Java 11 i 12, naučite za 21 dan, prevod osmog izdanja 1980 Android 9, Kotlin i Android Studio 3. 2 u jednoj knjizi 2000 Čisto agilno - razvoj softvera, agilne vrednosti i principi Robert C. Martin 1500 ArchiCAD 19 1100 Naučite TypeScript prevod drugog izdanja 1500 R analiza podataka, drugo izdanje 1800 CCNA 200-301 Zvanični vodič za sertifikat, knjiga 1 2200 Vodič za dizajniranje frejmvorka 2000 Čist C++ 20, Obrasci održivog razvoja softvera i najbolje prakse 1800 Otkrivanje jednostavnosti 1980 Spisak svih knjiga sa sajamskim popustom
 
   

Sajamski popust od 25 do 50 posto traje do kraja oktobra

 

 

 

Već drugu godinu nema Sajma knjiga. Nećemo se videti, ali ono što smo spremili za Sajam knjiga sada ćete moći da kupite preko našeg sajta. DA BISTE SE LAKŠE ODLUČILI IMATE NEKOLIKO MOGUĆNOSTI PRETRAGE50 NAJTRAŽENIJIH KNJIGA      ako kupite bilo koje dve knjige sajamska cena knjižarska cena 1 Pragmatični programer: vaš put do stručnosti 1350 1500 1980 2 Uvod u digitalni marketing 1440 1600 2200 3 C# 8 i . NET Core 3, moderno međuplatformsko programiranje, prevod IV izdanja 1980 2200 2970 4 Čista arhitektura, Praktična rešenja softverske arhitekture legendarnog Roberta C. Martina,ujka Boba 1620 1800 2420 5 40 algoritama koje bi svaki programer trebalo da zna 1350 1500 1980 6 Laravel - Radni okvir za izradu modernih PHP aplikacija 1620 1800 2420 7 Administriranje Linux sistema - kuvar 1980 2200 2970 8 Google Ads, definitivni vodič prevod šestog izdanja 1485 1650 2200 9 WordPress 5 u celosti, VII izdanje 1350 1500 1980 10 Algoritmi veštačke inteligencije, edicija Grokking 1485 1650 2200 11 Vue. js 3 kuvar 1710 1900 2530 12 Testiranje JavaScript aplikacija 1620 1800 2420 13 Principi lepog veb dizajna, prevod četvrtog izdanja 1620 1800 2420 14 Node. js veb razvoj - prevod petog izdanja 1800 2000 2750 15 C#9 i . NET 5 arhitektura softvera, prevod drugog izdanja 1980 2200 2970 16 101 princip za dobar UX dizajn 1350 1500 1980 17 Kali Linux - Testiranje neprobojnosti veba - treće izdanje 1350 1500 1980 18 PHP 7, MYSQL I JAVASCRIPT U JEDNOJ KNJIZI 1980 2200 2970 19 Objektno-orijentisan JavaScript treće izdanje 1530 1700 2420 20 GO od početnika do profesionalca 1980 2200 2970 21 C# i . NET Core projektni obrasci 1350 1500 2090 22 C++ jedna lekcija dnevno 1800 2000 2860 23 HTML5, CSS3 I JavaScript za razvoj veb strana 1980 2200 2970 24 Amazon veb servisi u akciji, prevod drugog izdanja 1620 1800 2420 25 Uvod u Python, automatizovanje dosadnih poslova 1440 1600 2200 26 Excel 2013 na dlanu 1440 1600 2200 27 SPSS 20 Analiza bez muke 990 1100 1650 28 Naučite Spring 5 1620 1800 2420 29 Naučite Unity 5. x 1710 1900 2530 30 Python razvoj mikroservisa 990 1100 1760 31 WordPress kreiranje veb aplikacija 1620 1800 2420 32 Django 3 kroz primere, prevod III izdanja 1710 1900 2530 33 SQL za analizu podataka 1440 1600 2200 34 GraphQL i React Full-Stack veb razvoj 1530 1700 2310 35 Zaštita od zlonamernih programa (Malware analysis) 1620 1800 2420 36 Naučite Linux Shell skriptovanje, drugo izdanje 1080 1200 1760 37 JavaScript funkcionalno programiranje, drugo izdanje 1530 1700 2310 38 Python mašinsko učenje, prevod trećeg izdanja 1980 2200 2970 39 Osnove veštačke inteligencije i mašinskog učenja 1350 1500 1980 40 Naučite Bootstrap 4, drugo izdanje 990 1100 1760 41 Java 11 i 12, naučite za 21 dan, prevod osmog izdanja 1782 1980 2640 42 Android 9, Kotlin i Android Studio 3. 2 u jednoj knjizi 1800 2000 2970 43 Čisto agilno - razvoj softvera, agilne vrednosti i principi Robert C. Martin 1350 1500 1980 44 ArchiCAD 19 990 1100 1870 45 Naučite TypeScript prevod drugog izdanja 1350 1500 2420 46 R analiza podataka, drugo izdanje 1620 1800 2530 47 CCNA 200-301 Zvanični vodič za sertifikat, knjiga 1 1980 2200 2970 48 Vodič za dizajniranje frejmvorka 1800 2000 2750 49 Čist C++ 20, Obrasci održivog razvoja softvera i najbolje prakse 1620 1800 2420 50 Otkrivanje jednostavnosti 1782 1980 2640 PRETRAŽIVANJE PO OBLASTIMA: 1 Web design 2 JavaScript 3 C++ Visual C++ C# 4 PHP I MYSQL 5 Python programiranje 6 Java 7 Marketing 8 WordPress 9 Serija Roberta C. Martina 10 Veštačka inteligencija 11 Mašinsko učenje 12 Zaštita i sigurnost KOMPLETAN SPISAK SVIH KNJIGA ZA KOJE VAŽI  SAJAMSKI POPUST:SVE NAŠE KNJIGEPREPORUČUJEMO VAM I KOMPLETE KNJIGA:KOMPLETINapomena: Cene knjiga su snižene od 25 do više od 50%. Za 2 i više kupljenih knjiga važi dodatni popust od 10%. SVE PRETHODNE AKCIJE OD DANAS VIŠE NE VAŽE. AKCIJA TRAJE DO 1. NOVEMBRA.
 
   

Naša knjiga Principi lepog veb dizajna u svim boljim knjižarama u Srbiji

 

 

 

Principi lepog veb dizajna   Našu knjigu možete da kupite kod nas ili u jednoj od sledećih knjižara: BEOGRAD   Vulkan KCB, KNEZ MIHAILOVA 6 Vulkan Sremska 2 Vulkan STADION TC – Zaplanjska 32 Vulkan SC KARABURMA - Mirijevski bulevar 18b Giunti knjižare Akademija, Knez Mihailova 35 DOBRA KNJIGA MAKSIMA GORKOG 137 DERETA KNEZ MIHAILOVA 46 Delfi MAKEDONSKA 12 Delfi STANOJA GLAVAŠA 1 Delfi Vareška 4 Delfi Požeška 118a Delfi KRALJA MILANA 48 Delfi SKC – RESAVSKA 33 Delfi Bulevar kralja Aleksandra 92 Delfi RUZVELTOVA 33 Delfi Gandijeva 21 Delfi Bul. Kr. Aleksandra 146 Delfi ŽIVKA DAVIDOVIĆA 86 TC AVIV PARK DATA STATUS 27. MARTA 43 - Podzemni prolaz BIGZ Školstvo Požeška 136 BIGZ Školstvo Kosovska 37 NOVI BEOGRAD   Vulkan DELTA CITY Vulkan T. C. MERKATOR Vulkan UŠĆE ŠOPING CENTAR Delfi MILUTINA MILANKOVIĆA 86A ČAČAK   Vulkan Gradsko šetalište 181 Knjižara reči TRG USTANKA 2 Delfi Gradsko šetalište bb GORNJI MILANOVAC   Delfi VOJVODE MILANA 4 JAGODINA   Delfi VIVO shopping PARK, lokal A10 KIKINDA   Leo Commerce TRG SRPSKIH DOBROVOLJACA 19 KRAGUJEVAC   Vulkan TC PLAZA Delfi KRALJA PETRA I br. 46 KRALJEVO   Kulturni centar Ribnica OMLADINSKA 59 Delfi Omladinska 16/1 KRUŠEVAC   Delfi MIRKA TOMIĆA 89 NIŠ   Vulkan OBILIĆEVA 42 Vulkan Vizantijski bulevar 1 Infoelektronika Milentijeva 18 a Delfi Obrenovićeva bb Delfi VOŽDOVA 4 Delfi Bulevar Medijana 21g NOVI SAD   Vulkan BIG CEE Vulkan MC - Bulevar oslobodjenja 102 Vulkan ZMAJ JOVINA 24 Solaris SUTJESKA 2 Delfi Zmaj Jovina 12 Delfi Big Shopping centar -Sentandrejski put 1 NOVI PAZAR   Službani glasnik 28. Novembra 21 PANČEVO   Vulkan AVIV T. C. Riznica V. RADOMIRA PUTNIKA 6 Delfi MILOŠA OBRENOVIĆA 12 POŽAREVAC   Delfi STARI KORZO 2 ŠABAC   Vulkan Jovana Cvijića bb SREMSKA MITROVICA   Delfi Trg Svetog Stefana 32 - TC RODIĆ SUBOTICA   LIMBUS KORZO 15 Delfi Korzo 8 Delfi Ritejl park Shoppi, Segedinski put 88 Danilo Kiš 10. OKTOBRA 2 UŽICE   Delfi Trg Svetog Save 46 VALJEVO   Delfi KNEZA MILOŠA 33 VRŠAC   Delfi Trg Sv. Teodora Vršačkog 5 ZAJEČAR   Kaligraf Svetozara Markovića 26 ZEMUN   Vulkan Glavna 25-27 Delfi GLAVNA 20 Delfi Auto put za Novi Sad br. 124-126 AGM knjiga Vrtlarska 27/9 ZRENJANIN   Delfi TC Aviv park, Ulica Bagljaš Zapad 5  
 
   

JavaScript Algorithms and Data Structures

 

 

 

Algorithms and data structures implemented in JavaScript with explanations and links to further readings This repository contains JavaScript based examples of many popular algorithms and data structures. Each algorithm and data structure has its own separate README with related explanations and links for further reading (including ones to YouTube videos). Read this in other languages: 简体中文, 繁體中文, 한국어, 日本語, Polski, Français, Español, Português, Русский, Türk, Italiana, Bahasa Indonesia, Українська, Arabic, Deutsch  Note that this project is meant to be used for learning and researching purposes only, and it is not meant to be used for production. Data Structures A data structure is a particular way of organizing and storing data in a computer so that it can be accessed and modified efficiently. More precisely, a data structure is a collection of data values, the relationships among them, and the functions or operations that can be applied to the data. B - Beginner, A - Advanced B Linked List B Doubly Linked List B Queue B Stack B Hash Table B Heap - max and min heap versions B Priority Queue A Trie A Tree A Binary Search Tree A AVL Tree A Red-Black Tree A Segment Tree - with min/max/sum range queries examples A Fenwick Tree (Binary Indexed Tree) A Graph (both directed and undirected) A Disjoint Set A Bloom Filter Algorithms An algorithm is an unambiguous specification of how to solve a class of problems. It is a set of rules that precisely define a sequence of operations. B - Beginner, A - Advanced Algorithms by Topic Math B Bit Manipulation - set/get/update/clear bits, multiplication/division by two, make negative etc. B Binary Floating Point - binary representation of the floating-point numbers. B Factorial B Fibonacci Number - classic and closed-form versions B Prime Factors - finding prime factors and counting them using Hardy-Ramanujan's theorem B Primality Test (trial division method) B Euclidean Algorithm - calculate the Greatest Common Divisor (GCD) B Least Common Multiple (LCM) B Sieve of Eratosthenes - finding all prime numbers up to any given limit B Is Power of Two - check if the number is power of two (naive and bitwise algorithms) B Pascal's Triangle B Complex Number - complex numbers and basic operations with them B Radian & Degree - radians to degree and backwards conversion B Fast Powering B Horner's method - polynomial evaluation B Matrices - matrices and basic matrix operations (multiplication, transposition, etc. ) B Euclidean Distance - distance between two points/vectors/matrices A Integer Partition A Square Root - Newton's method A Liu Hui π Algorithm - approximate π calculations based on N-gons A Discrete Fourier Transform - decompose a function of time (a signal) into the frequencies that make it up Sets B Cartesian Product - product of multiple sets B Fisher–Yates Shuffle - random permutation of a finite sequence A Power Set - all subsets of a set (bitwise and backtracking solutions) A Permutations (with and without repetitions) A Combinations (with and without repetitions) A Longest Common Subsequence (LCS) A Longest Increasing Subsequence A Shortest Common Supersequence (SCS) A Knapsack Problem - "0/1" and "Unbound" ones A Maximum Subarray - "Brute Force" and "Dynamic Programming" (Kadane's) versions A Combination Sum - find all combinations that form specific sum Strings B Hamming Distance - number of positions at which the symbols are different A Levenshtein Distance - minimum edit distance between two sequences A Knuth–Morris–Pratt Algorithm (KMP Algorithm) - substring search (pattern matching) A Z Algorithm - substring search (pattern matching) A Rabin Karp Algorithm - substring search A Longest Common Substring A Regular Expression Matching Searches B Linear Search B Jump Search (or Block Search) - search in sorted array B Binary Search - search in sorted array B Interpolation Search - search in uniformly distributed sorted array Sorting B Bubble Sort B Selection Sort B Insertion Sort B Heap Sort B Merge Sort B Quicksort - in-place and non-in-place implementations B Shellsort B Counting Sort B Radix Sort Linked Lists B Straight Traversal B Reverse Traversal Trees B Depth-First Search (DFS) B Breadth-First Search (BFS) Graphs B Depth-First Search (DFS) B Breadth-First Search (BFS) B Kruskal’s Algorithm - finding Minimum Spanning Tree (MST) for weighted undirected graph A Dijkstra Algorithm - finding the shortest paths to all graph vertices from single vertex A Bellman-Ford Algorithm - finding the shortest paths to all graph vertices from single vertex A Floyd-Warshall Algorithm - find the shortest paths between all pairs of vertices A Detect Cycle - for both directed and undirected graphs (DFS and Disjoint Set based versions) A Prim’s Algorithm - finding Minimum Spanning Tree (MST) for weighted undirected graph A Topological Sorting - DFS method A Articulation Points - Tarjan's algorithm (DFS based) A Bridges - DFS based algorithm A Eulerian Path and Eulerian Circuit - Fleury's algorithm - Visit every edge exactly once A Hamiltonian Cycle - Visit every vertex exactly once A Strongly Connected Components - Kosaraju's algorithm A Travelling Salesman Problem - shortest possible route that visits each city and returns to the origin city Cryptography B Polynomial Hash - rolling hash function based on polynomial B Rail Fence Cipher - a transposition cipher algorithm for encoding messages B Caesar Cipher - simple substitution cipher B Hill Cipher - substitution cipher based on linear algebra Machine Learning B NanoNeuron - 7 simple JS functions that illustrate how machines can actually learn (forward/backward propagation) B k-NN - k-nearest neighbors classification algorithm B k-Means - k-Means clustering algorithm Image Processing B Seam Carving - content-aware image resizing algorithm Uncategorized B Tower of Hanoi B Square Matrix Rotation - in-place algorithm B Jump Game - backtracking, dynamic programming (top-down + bottom-up) and greedy examples B Unique Paths - backtracking, dynamic programming and Pascal's Triangle based examples B Rain Terraces - trapping rain water problem (dynamic programming and brute force versions) B Recursive Staircase - count the number of ways to reach to the top (4 solutions) B Best Time To Buy Sell Stocks - divide and conquer and one-pass examples A N-Queens Problem A Knight's Tour Algorithms by Paradigm An algorithmic paradigm is a generic method or approach which underlies the design of a class of algorithms. It is an abstraction higher than the notion of an algorithm, just as an algorithm is an abstraction higher than a computer program. Brute Force - look at all the possibilities and selects the best solution B Linear Search B Rain Terraces - trapping rain water problem B Recursive Staircase - count the number of ways to reach to the top A Maximum Subarray A Travelling Salesman Problem - shortest possible route that visits each city and returns to the origin city A Discrete Fourier Transform - decompose a function of time (a signal) into the frequencies that make it up Greedy - choose the best option at the current time, without any consideration for the future B Jump Game A Unbound Knapsack Problem A Dijkstra Algorithm - finding the shortest path to all graph vertices A Prim’s Algorithm - finding Minimum Spanning Tree (MST) for weighted undirected graph A Kruskal’s Algorithm - finding Minimum Spanning Tree (MST) for weighted undirected graph Divide and Conquer - divide the problem into smaller parts and then solve those parts B Binary Search B Tower of Hanoi B Pascal's Triangle B Euclidean Algorithm - calculate the Greatest Common Divisor (GCD) B Merge Sort B Quicksort B Tree Depth-First Search (DFS) B Graph Depth-First Search (DFS) B Matrices - generating and traversing the matrices of different shapes B Jump Game B Fast Powering B Best Time To Buy Sell Stocks - divide and conquer and one-pass examples A Permutations (with and without repetitions) A Combinations (with and without repetitions) Dynamic Programming - build up a solution using previously found sub-solutions B Fibonacci Number B Jump Game B Unique Paths B Rain Terraces - trapping rain water problem B Recursive Staircase - count the number of ways to reach to the top B Seam Carving - content-aware image resizing algorithm A Levenshtein Distance - minimum edit distance between two sequences A Longest Common Subsequence (LCS) A Longest Common Substring A Longest Increasing Subsequence A Shortest Common Supersequence A 0/1 Knapsack Problem A Integer Partition A Maximum Subarray A Bellman-Ford Algorithm - finding the shortest path to all graph vertices A Floyd-Warshall Algorithm - find the shortest paths between all pairs of vertices A Regular Expression Matching Backtracking - similarly to brute force, try to generate all possible solutions, but each time you generate next solution you test if it satisfies all conditions, and only then continue generating subsequent solutions. Otherwise, backtrack, and go on a different path of finding a solution. Normally the DFS traversal of state-space is being used. B Jump Game B Unique Paths B Power Set - all subsets of a set A Hamiltonian Cycle - Visit every vertex exactly once A N-Queens Problem A Knight's Tour A Combination Sum - find all combinations that form specific sum Branch & Bound - remember the lowest-cost solution found at each stage of the backtracking search, and use the cost of the lowest-cost solution found so far as a lower bound on the cost of a least-cost solution to the problem, in order to discard partial solutions with costs larger than the lowest-cost solution found so far. Normally BFS traversal in combination with DFS traversal of state-space tree is being used. ORIGINAL: javascript algoritmi i strukture podataka trekhleb/javascript-algorithms
 
   
Veze, linkovi
Linkedin Twitter Facebook
 
     
 
© Sva prava pridržana, Kompjuter biblioteka, Beograd, Obalskih radnika 4a, Telefon: +381 11 252 0 272