18 geriausių algoritmo interviu klausimų ir Atsakymai

Anonim

Atsisiųsti PDF

1) Paaiškinkite, kas yra skaičiavimo algoritmas?

Algoritmas yra gerai apibrėžta skaičiavimo procedūra, kurios tam tikra vertė laikoma įvestimi, o vertė - kaip išvestis. Paprastais žodžiais tariant, tai skaičiavimo žingsnių seka, kuri konvertuoja įvestį į išvestį.

2) Paaiškinkite, kas yra „Quick Sort“ algoritmas?

Greito rūšiavimo algoritmas turi galimybę greitai rūšiuoti sąrašą ar užklausas. Jis grindžiamas principu, kad dalijimasis rūšiuoti arba skirstyti ir užkariauti. Šio tipo algoritmai užima mažiau vietos ir jis išskiria sąrašą į tris pagrindines dalis

  • Elementai mažiau nei „Pivot“ elementas
  • „Pivot“ elementas
  • Elementai, didesni už „Pivot“ elementą

3) Paaiškinkite, koks yra algoritmo laiko sudėtingumas?

Algoritmo laiko sudėtingumas rodo bendrą programos vykdymui reikalingą laiką. Paprastai jis išreiškiamas naudojant didįjį O žymėjimą.

4) Paminėkite, kokie žymėjimo tipai naudojami laiko sudėtingumui?

Įtraukimų tipų, naudojamų sudėtingam laiko atžvilgiu, tipai apima

  • Didelis „Oh“: tai rodo „mažiau nei arba tas pats, kas < kartojimai
  • Didžioji omega : ji nurodo „daugiau nei arba tokia pati kaip“ kartojimai
  • Didžioji teta: ji nurodo „tą patį kaip ir„ “kartojimai
  • Mažasis: Tai rodo „mažiau nei“ kartojimus
  • Mažoji omega: ji nurodo „daugiau nei“ kartojimus

5) Paaiškinkite, kaip veikia dvejetainė paieška?

Dvejetainėje paieškoje mes palyginame raktą su elementu, esančiu vidurinėje masyvo padėtyje. Jei raktas yra mažesnis nei ieškomas elementas, jis turi būti apatinėje masyvo pusėje, jei raktas yra didesnis nei ieškomas elementas, nei turėtų būti viršutinėje masyvo pusėje.

6) Paaiškinkite, ar galima naudoti dvejetainę paiešką susietiems sąrašams?

Kadangi atsitiktinė prieiga nepriimtina susietame sąraše, neįmanoma pasiekti vidurinio O (1) laiko elemento. Taigi dvejetainė paieška neįmanoma susietame sąraše.

7) Paaiškinkite, kas yra krūvos rūšis?

„Heap-sort“ galima apibrėžti kaip palyginimu pagrįstą rūšiavimo algoritmą. Jis dalija savo įvestį į nerūšiuotą ir išrūšiuotą sritį, kol sutraukia nerūšiuotą sritį pašalindamas mažiausią elementą ir perkeldamas jį į rūšiuojamą sritį.

8) Paaiškinkite, kas yra „Praleisti sąrašą“?

Praleidimo sąraše nurodomas duomenų struktūrizavimo metodas, kai jis leidžia algoritmui ieškoti, ištrinti ir įterpti elementus į simbolių lentelę ar žodyną. Praleidimo sąraše kiekvieną elementą vaizduoja mazgas. Paieškos funkcija pateikia vertės, susijusios su raktu, turinį. Įterpimo operacija susieja nurodytą raktą su nauja reikšme, o ištrynimo funkcija ištrina nurodytą raktą.

9) Paaiškinkite, koks yra intarpų rūšiavimo algoritmo erdvės sudėtingumas?

Įterpimo rūšiavimas yra vietoje rūšiavimo algoritmas, o tai reiškia, kad jam nereikia nei papildomo, nei mažai. saugojimas. Norint įterpti rūšiavimą, reikia, kad išoriniai pradiniai duomenys būtų saugomi tik pavieniuose sąrašo elementuose, todėl erdvės sudėtingumas yra 0 (1).

10) Paaiškinkite, kas yra „maišos algoritmas“ ir kam jie naudojami?

„Maišos algoritmas“ yra maišos funkcija, reikalaujanti bet kokio ilgio eilutės ir sumažinanti ją iki unikalios fiksuoto ilgio eilutės. Jis naudojamas slaptažodžio galiojimui, pranešimų ir duomenų vientisumui bei daugeliui kitų kriptografinių sistemų.

11) Paaiškinkite, kaip rasti, ar susietame sąraše yra kilpa?

Norėdami sužinoti, ar susietame sąraše yra kilpa, taikysime dviejų rodyklių metodą. Jei išlaikysime du rodiklius ir padidinsime vieną rodyklę apdoroję du mazgus, o kitą - po kiekvieno mazgo apdorojimo, greičiausiai susidursime su situacija, kai abu rodyklės bus nukreiptos į tą patį mazgą. Tai atsitiks tik tuo atveju, jei susietame sąraše yra kilpa.

12) Paaiškinkite, kaip veikia šifravimo algoritmas?

Šifravimas yra paprastojo teksto pavertimas slapto kodo formatu, vadinamu „Ciphertext“. Norėdami konvertuoti tekstą, algoritmas skaičiavimams naudoja bitų eilutę, vadinamą „klavišais“. Kuo didesnis raktas, tuo didesnis potencialių šifro teksto kūrimo modelių skaičius. Dauguma šifravimo algoritmų naudoja fiksuotus įvesties blokus, kurių ilgis yra nuo 64 iki 128 bitų, o kai kurie naudoja srauto metodą.

13) Išvardykite keletą dažniausiai naudojamų kriptografinių algoritmų?

Kai kurie dažniausiai naudojami kriptografiniai algoritmai yra

  • 3 krypčių
  • Blowfish
  • CAST
  • CMEA
  • GOST
  • DES ir trigubas DES
  • IDĖJA
  • LOKI ir pan

14) Paaiškinkite, kuo skiriasi geriausias ir blogiausias algoritmo scenarijus?

  • Geriausias scenarijus: geriausias algoritmo scenarijus paaiškinamas kaip duomenų išdėstymas, kuriam algoritmas veikia geriausiai. Pavyzdžiui, imamės dvejetainės paieškos, kuriai geriausia būtų, jei tikslinė vertė būtų pačiame jūsų ieškomų duomenų centre. Geriausias laiko sudėtingumas būtų 0 (1)

  • Blogiausias atvejis: jis nurodomas kaip blogiausias įvesties rinkinys tam tikram algoritmui. Pvz., „Quicksort“, kuris gali veikti blogiausiai, jei pasirenkate didžiausią arba mažiausią pivot reikšmės antrinio sąrašo elementą. Tai sukels greitojo vystymosi degeneraciją iki O (n2).

15) Paaiškinkite, kas yra „Radix Sort“ algoritmas?

„Radix sort“ elementas sutvarkomas lyginant skaičių skaitmenis. Tai yra vienas iš sveikųjų skaičių tiesinio rūšiavimo algoritmų.

16) Paaiškinkite, kas yra rekursinis algoritmas?

Rekursinis algoritmas yra sudėtingos problemos sprendimo būdas suskaidant problemą į mažesnes ir mažesnes problemas, kol problema bus pakankamai maža, kad ją būtų galima lengvai išspręsti. Paprastai tai apima funkciją, kuri paskambina pati .

17) Paminėkite, kokie yra trys rekursijos algoritmo dėsniai?

Visi rekursiniai algoritmai turi atitikti tris dėsnius

  • Tai turėtų būti pagrindinė byla
  • Rekursinis algoritmas turi pats save vadinti
  • Rekursinis algoritmas turi pakeisti savo būseną ir judėti link pagrindinio atvejo

18) Paaiškinkite, kas yra burbulų rūšiavimo algoritmas?

Burbulų rūšiavimo algoritmas taip pat vadinamas grimztančiu rūšiavimu. Tokio rūšiavimo rūšyje sąrašas, kurį reikia sutvarkyti, lygina gretimų elementų porą. Jei jie bus išdėstyti neteisinga tvarka, jis sukeis vertybes ir išdėstys jas teisinga tvarka.