Ketkä ovat vaikeita ihmisiä? Algoritmien monimutkaisuuden arviointi eli mikä on O(log n) O(n) - lineaarinen monimutkaisuus

Monimutkaisuus, monimutkaisuus, monia. ei, nainen hajamielinen substantiivi monimutkaiseksi. Asian monimutkaisuus. Asian monimutkaisuus. Kansainvälisen tilanteen monimutkaisuus. ❖ Kaiken kaikkiaan, kaikki huomioon ottaen, lopulta yhteensä, kokonaisuutena. Kaiken kaikkiaan töitä on vielä jäljellä... Ushakovin selittävä sanakirja

monimutkaisuus- Monimutkaisuus, monimutkaisuus, hämmennys, vaikeus, vanhentunut. monitavuinen, puhekieli kikkailu, puhekieli kekseliäisyys KOMPLEKSINEN, hämmentävä, monimutkainen, hämmentävä, epäyhtenäinen, vaikea, vaikea, monimutkainen kudottu, nerokas, vanhentunut.… … Venäjän puheen synonyymien sanakirja-tesaurus

Monimutkaisuus ja nainen. 1. katso monimutkainen. 2. yleensä monikko. Vaikeus, vaikeuttava seikka. Ilmoittautumisessa oli vaikeuksia. Ožegovin selittävä sanakirja. SI. Ožegov, N. Yu. Shvedova. 1949 1992… Ožegovin selittävä sanakirja

monimutkaisuus- 1. Koostuu useista osista; saapuvien osien koostumuksen ja niiden välisten yhteyksien monimuotoisuus. 2. Vaikeus, hämmennys. Päinvastainen käsite on yksinkertaisuus. Käytännön psykologin sanakirja. M.: AST, Harvest. S. Yu Golovin. 1998... Suuri psykologinen tietosanakirja

monimutkaisuus- - Aiheet tietojen suojaus FI vaikeus... Teknisen kääntäjän opas

monimutkaisuus- suuri monimutkaisuus suurin monimutkaisuus valtava monimutkaisuus äärimmäinen monimutkaisuus ... Venäjän idiomien sanakirja

monimutkaisuus- sudėtingas statusas T ala radioelektronika atitikmenys: engl. monimutkaisuus vok. Complexität, f rus. monimutkaisuus, f pranc. monimutkainen, f… Radioelektronikos terminų žodynas

monimutkaisuus- 3.8 monimutkaisuus: Järjestelmän tai komponentin ominaisuus, jonka suunnittelu, toteutus tai käyttäytyminen on vaikea ymmärtää tai tarkistaa. Lähde: GOST R IEC 61513 2011: Ydinvoimalaitokset. Ohjausjärjestelmät ja...... Normatiivisen ja teknisen dokumentaation termien sanakirja-viitekirja

J. abstrakti substantiivi adj:n mukaan Efremovan monimutkainen selittävä sanakirja. T. F. Efremova. 2000... Efremovan moderni selittävä venäjän kielen sanakirja

Monimutkaisuus, monimutkaisuus, monimutkaisuus, monimutkaisuus, monimutkaisuus, monimutkaisuus, monimutkaisuus, monimutkaisuus, monimutkaisuus, monimutkaisuus, monimutkaisuus, monimutkaisuus (Lähde: "Täydellinen korostettu paradigma A. A. Zaliznyakin mukaan") ... Sanamuodot

Kirjat

  • Monimutkaisuus ja monimutkaisuus sosiokulttuurisena ilmiönä. Numero 25, Opolev P.V.. Työ tutkii 171 monimutkaisuuden käsitettä ja sosiokulttuurisen monimutkaisuuden näkymiä nykymaailmassa, tunnistaa suuntauksia inhimillisen ulottuvuuden muutoksissa, sfäärin...
  • Monimutkaisuus. Matemaattinen mallinnus. Humanitaarinen analyysi, N. V. Belotelov, Yu I. Brodsky, Yu N. Pavlovsky. Lukijan tietoon tuotu kirja käsittelee yhtä keskeistä matemaattisen ja simulaatiomallinnuksen käytön ongelmaa sosioekonomisten järjestelmien tutkimuksessa -...

Olet luultavasti törmännyt merkintöihin, kuten O(log n), useammin kuin kerran tai kuullut lauseita, kuten "logaritminen laskennallinen monimutkaisuus", joka on osoitettu joillekin algoritmeille. Ja jos et vieläkään ymmärrä, mitä tämä tarkoittaa, tämä artikkeli on sinua varten.

Vaikeusaste

Algoritmien monimutkaisuus mitataan yleensä niiden suoritusajalla tai muistinkäytöllä. Molemmissa tapauksissa monimutkaisuus riippuu syötetietojen koosta: 100 elementin ryhmä käsitellään nopeammin kuin vastaava 1000 elementti. Harva on kuitenkin kiinnostunut tarkasta ajasta: se riippuu prosessorista, tietotyypistä , ohjelmointikieli ja monet muut parametrit. Vain asymptoottinen monimutkaisuus on tärkeä, eli monimutkaisuus, kun syöttödatan koko pyrkii äärettömään.

Oletetaan, että jonkin algoritmin on suoritettava 4n 3 + 7n ehdollista operaatiota käsitelläkseen n syöttödatan elementtiä. Kun n kasvaa, lopulliseen käyttöaikaan vaikuttaa huomattavasti enemmän n:n nostaminen kuutioon kuin kertominen 4:llä tai 7n lisääminen. Sitten he sanovat, että tämän algoritmin aikamonimutkaisuus on O(n 3), eli se riippuu kuutioisesti syötetyn datan koosta.

Ison O:n käyttö (tai ns. O-merkintä) tulee matematiikasta, jossa sitä käytetään vertailemaan funktioiden asymptoottista käyttäytymistä. Muodollisesti O(f(n)) tarkoittaa, että algoritmin ajoaika (tai varatun muistin määrä) kasvaa syötetyn datan koosta riippuen korkeintaan nopeammin kuin jokin vakio kerrottuna f(n):llä.

Esimerkkejä

O(n) - lineaarinen kompleksisuus

Esimerkiksi algoritmilla lajittelemattoman taulukon suurimman elementin löytämiseksi on tämä monimutkaisuus. Meidän täytyy käydä läpi kaikki taulukon n elementtiä ymmärtääksemme, mikä niistä on suurin.

O(log n) - logaritminen monimutkaisuus

Yksinkertaisin esimerkki on binäärihaku. Jos taulukko on lajiteltu, voimme puolittamismenetelmällä tarkistaa, sisältääkö se tietyn arvon. Tarkastetaan keskimmäinen elementti, jos se on suurempi kuin etsimämme, hylkäämme taulukon toisen puoliskon - se ei todellakaan ole siellä. Jos se on pienempi, päinvastoin - hylkäämme ensimmäisen puolikkaan. Jatkamme siis jakamista puoliksi, ja lopuksi tarkistamme log n elementtejä.

O(n 2) - neliöllinen kompleksisuus

Esimerkiksi lisäyslajittelualgoritmilla on tämä monimutkaisuus. Kanonisessa toteutuksessa se koostuu kahdesta sisäkkäisestä silmukasta: toinen käy läpi koko taulukon ja toinen etsii paikan seuraavalle elementille jo lajiteltusta osasta. Siten operaatioiden määrä riippuu taulukon koosta n * n, eli n 2.

On muitakin vaikeusluokituksia, mutta ne kaikki perustuvat samaan periaatteeseen.

Käy myös niin, että algoritmin ajoaika ei riipu ollenkaan syötetyn tiedon koosta. Sitten kompleksisuutta merkitään O(1) . Esimerkiksi taulukon kolmannen elementin arvon määrittämiseksi sinun ei tarvitse muistaa elementtejä tai käydä niitä läpi monta kertaa. Sinun tarvitsee aina vain odottaa syötetietovirran kolmatta elementtiä ja tämä on tulos, jonka laskeminen vie saman verran aikaa mille tahansa datamäärälle.

Sama koskee muistin arviointeja, kun tämä on tärkeää. Algoritmit voivat kuitenkin käyttää huomattavasti enemmän muistia syöttötietojen kokoa suurentaessaan kuin muut, mutta silti ne toimivat nopeammin. Ja päinvastoin. Tämä auttaa valitsemaan parhaat tavat ratkaista ongelmia nykyisten olosuhteiden ja vaatimusten perusteella.