Kas yra sunkūs žmonės? O(n) – tiesinis sudėtingumas

Tikriausiai ne kartą susidūrėte su užrašais, pvz., O(log n), arba girdėjote tokias frazes kaip „logaritminis skaičiavimo sudėtingumas“, skirtas kai kuriems algoritmams. Ir jei vis dar nesuprantate, ką tai reiškia, šis straipsnis skirtas jums.

Sunkumo įvertinimas

Algoritmų sudėtingumas paprastai matuojamas pagal jų vykdymo laiką arba atminties naudojimą. Abiem atvejais sudėtingumas priklauso nuo įvesties duomenų dydžio: 100 elementų masyvas bus apdorojamas greičiau nei panašus 1000. Tačiau tikslus laikas mažai kam įdomu: tai priklauso nuo procesoriaus, duomenų tipo. , programavimo kalba ir daug kitų parametrų. Svarbus tik asimptotinis sudėtingumas, ty sudėtingumas, kai įvesties duomenų dydis linkęs į begalybę.

Tarkime, kad koks nors algoritmas turi atlikti 4n 3 + 7n sąlygines operacijas, kad apdorotų n įvesties duomenų elementų. Didėjant n, galutinę veikimo trukmę žymiai labiau paveiks n pakėlimas į kubą, nei padauginus iš 4 arba pridėjus 7n. Tada jie sako, kad šio algoritmo laiko sudėtingumas yra O(n 3), ty jis kubiškai priklauso nuo įvesties duomenų dydžio.

Didžiosios O raidės (arba vadinamosios O žymėjimo) vartojimas kilęs iš matematikos, kur jis naudojamas lyginant asimptotinį funkcijų elgesį. Formaliai O(f(n)) reiškia, kad algoritmo veikimo laikas (arba užimtos atminties kiekis) didėja priklausomai nuo įvesties duomenų dydžio ne greičiau nei kokia nors konstanta, padauginta iš f(n) .

Pavyzdžiai

O(n) – tiesinis sudėtingumas

Pavyzdžiui, didžiausio nerūšiuoto masyvo elemento radimo algoritmas yra toks sudėtingas. Turėsime pereiti visus n masyvo elementų, kad suprastume, kuris iš jų yra didžiausias.

O(log n) – logaritminis sudėtingumas

Paprasčiausias pavyzdys yra dvejetainė paieška. Jei masyvas yra surūšiuotas, galime patikrinti, ar jame yra tam tikra reikšmė, naudodami perpusinimo metodą. Patikrinkime vidurinį elementą, jei jis didesnis nei ieškomas, tai antrą masyvo pusę išmesime – jo tikrai nėra. Jei mažiau, tada atvirkščiai – pradinę pusę išmesime. Taigi mes ir toliau dalinsime per pusę, o pabaigoje patikrinsime log n elementus.

O(n 2) – kvadratinis sudėtingumas

Pavyzdžiui, įterpimo rūšiavimo algoritmas yra toks sudėtingas. Kanoniniame įgyvendinime jį sudaro dvi įdėtos kilpos: viena skirta pereiti per visą masyvą, o antroji – rasti vietą kitam elementui jau surūšiuotoje dalyje. Taigi operacijų skaičius priklausys nuo masyvo dydžio n * n, ty n 2.

Yra ir kitų sunkumų įvertinimų, tačiau jie visi pagrįsti tuo pačiu principu.

Taip pat atsitinka, kad algoritmo veikimo laikas visiškai nepriklauso nuo įvesties duomenų dydžio. Tada sudėtingumas žymimas O(1) . Pavyzdžiui, norint nustatyti trečiojo masyvo elemento reikšmę, nereikia elementų atsiminti ar daug kartų perskaityti. Visada tereikia palaukti trečiojo elemento įvesties duomenų sraute ir tai bus rezultatas, kurį reikia tiek pat laiko apskaičiuoti bet kokiam duomenų kiekiui.

Tas pats pasakytina ir apie atminties vertinimus, kai tai svarbu. Tačiau algoritmai, didindami įvesties duomenų dydį, gali naudoti žymiai daugiau atminties nei kiti, bet vis tiek veikti greičiau. Ir atvirkščiai. Tai padeda pasirinkti geriausius problemų sprendimo būdus pagal esamas sąlygas ir reikalavimus.

KOMPLEKSUMAS, sudėtingumas, daug. ne, moteris išsiblaškęs daiktavardis kompleksuoti. Problemos sudėtingumas. Klausimo sudėtingumas. Tarptautinės padėties sudėtingumas. ❖ Iš viso, atsižvelgiant į viską, iš viso, iš viso, kaip į visumą. Iš viso darbo dar liko... Ušakovo aiškinamasis žodynas

sudėtingumo- KOMPLEKSUMAS, sudėtingumas, painiava, sunkumas, pasenęs. daugiaskiemenis, šnekamoji kalba gudrumas, šnekamoji kalba išradingumas KOMPLEKSAS, mįslingas, sudėtingas, painus, nelinijinis, sunkus, sunkus, įmantriai austas, išradingas, pasenęs... … Rusų kalbos sinonimų žodynas-tezauras

KOMPLEKSAS, ir, moteriškas. 1. žr. kompleksą. 2. dažniausiai daugiskaita. Sunkumas, komplikuojanti aplinkybė. Registruojantis kilo sunkumų. Ožegovo aiškinamąjį žodyną. S.I. Ožegovas, N. Yu. Švedova. 1949 1992… Ožegovo aiškinamasis žodynas

sudėtingumo- 1. Sudėtas iš kelių dalių; gaunamų dalių sudėties ir ryšių tarp jų įvairovė. 2. Sunkumai, sumišimas. Priešinga koncepcija yra paprastumas. Praktinio psichologo žodynas. M.: AST, derlius. S. Yu Golovinas. 1998... Puiki psichologinė enciklopedija

sudėtingumo- - Temos informacijos apsauga EN sunkumai... Techninis vertėjo vadovas

sudėtingumo- didelis sudėtingumas, didžiausias sudėtingumas, didžiulis sudėtingumas, ypatingas sudėtingumas ... Rusų idiomų žodynas

sudėtingumo- Sudėtingas statusas T sritis radioelektronikos atitikmenys: engl. sudėtingumo vok. Complexität, f rus. sudėtingumas, f pranc. sudėtingumas, f… Radioelektronikos terminalų žodynas

sudėtingumo- 3.8 sudėtingumas: sistemos ar komponento ypatybė, kurios dizainas, vykdymas ar veikimas yra sunkiai suprantami ar patikrinami. Šaltinis: GOST R IEC 61513 2011: Atominės elektrinės. Valdymo sistemos ir...... Norminės ir techninės dokumentacijos terminų žodynas-žinynas

J. abstraktus daiktavardis pagal adj. sudėtingas Efremovos aiškinamasis žodynas. T. F. Efremova. 2000... Šiuolaikinis Efremovos rusų kalbos aiškinamasis žodynas

Sudėtingumas, sudėtingumas, sudėtingumas, sudėtingumas, sudėtingumas, sudėtingumas, sudėtingumas, sudėtingumas, sudėtingumas, sudėtingumas, sudėtingumas, sudėtingumas (Šaltinis: „Visa akcentuota paradigma pagal A. A. Zaliznyak“) ... Žodžių formos

Knygos

  • Sudėtingumas ir komplikacija kaip sociokultūrinis reiškinys. Numeris Nr. 25, Opolev P.V.. Darbe nagrinėjama 171 sudėtingumo samprata ir sociokultūrinės komplikacijos perspektyvos šiuolaikiniame pasaulyje, identifikuojamos žmogaus dimensijos pokyčių tendencijos, transformacijos sferoje;
  • Sudėtingumas. Matematinis modeliavimas. Humanitarinė analizė, N. V. Belotelovas, Yu I. Brodskis, J. Pavlovskis. Skaitytojo dėmesiui skirtoje knygoje aptariama viena iš pagrindinių matematinio ir simuliacinio modeliavimo naudojimo socialinių ir ekonominių sistemų tyrimuose problemų -...