Kes on rasked inimesed? Algoritmide keerukuse hindamine ehk mis on O(log n) O(n) – lineaarne keerukus

KERESKUS, keerukus, palju. ei, naine hajameelne nimisõna kompleksi teha. Probleemi keerukus. Asja keerukus. Rahvusvahelise olukorra keerukus. ❖ Kokkuvõttes kõike arvesse võttes lõpuks kokku, tervikuna. Kokkuvõttes on veel tööd jäänud... Ušakovi seletav sõnaraamat

keerukus- KOMPLEKSUS, keerukus, segadus, raskused, aegunud. mitmesilbiline, kõnekeelne kavalus, kõnekeel leidlikkus KOMPLEKS, mõistatuslik, keeruline, segane, mittelineaarne, raske, raske, keeruka kootud, geniaalne, aegunud.… … Vene keele sünonüümide sõnastik-tesaurus

KOMPLEKSUS ja, naissoost. 1. vt kompleks. 2. tavaliselt mitmus. Raskus, komplitseeriv asjaolu. Registreerimisega oli raskusi. Ožegovi seletav sõnaraamat. S.I. Ožegov, N. Yu. Švedova. 1949 1992 … Ožegovi seletav sõnaraamat

keerukus- 1. koosneb mitmest osast; sissetulevate osade koostise mitmekesisus ja nendevahelised seosed. 2. Raskus, segadus. Vastupidine kontseptsioon on lihtsus. Praktilise psühholoogi sõnaraamat. M.: AST, saak. S. Yu Golovin. 1998... Suurepärane psühholoogiline entsüklopeedia

keerukus- - Teemad teabekaitse ET raskus... Tehniline tõlkija juhend

keerukus- suur keerukus suurim keerukus tohutu keerukus äärmine keerukus ... Vene idioomide sõnastik

keerukus- keerulised staatused T valdkond raadioelektronika vastavusmenys: engl. keerukus vok. Complexität, f rus. keerukus, f pranc. keeruline, f… Radioelektronikos terminalų žodynas

keerukus- 3.8 keerukus: süsteemi või komponendi omadus, mille konstruktsioon, teostus või käitumine on raskesti mõistetav või kontrollitav. Allikas: GOST R IEC 61513 2011: Tuumaelektrijaamad. Juhtimissüsteemid ja...... Normatiivse ja tehnilise dokumentatsiooni terminite sõnastik-teatmik

J. abstraktne nimisõna vastavalt adj. Efremova keeruline seletav sõnaraamat. T. F. Efremova. 2000... Efremova kaasaegne vene keele seletav sõnaraamat

Keerulisus, keerukus, keerukus, keerukus, keerukus, keerukus, keerukus, keerukus, keerukus, keerukus, keerukus, keerukus (Allikas: “Täielik rõhutatud paradigma A. A. Zaliznyaki järgi”) ... Sõnavormid

Raamatud

  • Keerukus ja komplikatsioon kui sotsiaalkultuuriline nähtus. Issue nr 25, Opolev P.V. Töös uuritakse mõistet 171, keerukust 187 ja sotsiokultuurilisi komplikatsioonide väljavaateid kaasaegses maailmas, tuvastatakse suundumused inimmõõtme muutustes, sfääri muutumises...
  • Keerukus. Matemaatika modelleerimine. Humanitaaranalüüs, N. V. Belotelov, Yu. I. Brodsky, Yu. N. Pavlovski. Lugejate tähelepanu alla toodud raamat käsitleb üht keskset probleemi matemaatilise ja simulatsioonimodelleerimise kasutamisel sotsiaal-majanduslike süsteemide uurimisel -...

Tõenäoliselt olete rohkem kui korra kohanud selliseid tähistusi nagu O(log n) või kuulnud mõnele algoritmile adresseeritud fraase nagu "logaritmiline arvutuslik keerukus". Ja kui te ikka veel ei mõista, mida see tähendab, on see artikkel teie jaoks.

Raskusaste

Algoritmide keerukust mõõdetakse tavaliselt nende täitmise aja või mälukasutuse järgi. Mõlemal juhul sõltub keerukus sisendandmete suurusest: 100 elemendist koosnevat massiivi töödeldakse kiiremini kui sarnast 1000 elemendist koosnevat massiivi. Täpne aeg on aga väheseid huvitatud: see sõltub protsessorist, andmetüübist , programmeerimiskeel ja palju muid parameetreid. Oluline on ainult asümptootiline keerukus, st keerukus, kui sisendandmete suurus kipub lõpmatuseni.

Oletame, et mõni algoritm peab sisendandmete n elemendi töötlemiseks tegema 4n 3 + 7n tingimuslikku operatsiooni. Kui n suureneb, mõjutab lõplikku tööaega oluliselt rohkem n kuubiks tõstmine kui selle 4-ga korrutamine või 7n liitmine. Siis nad ütlevad, et selle algoritmi ajaline keerukus on O(n 3), st see sõltub kuubiliselt sisendandmete suurusest.

Suurtähe O (ehk nn O-tähistus) kasutamine pärineb matemaatikast, kus sellega võrreldakse funktsioonide asümptootilist käitumist. Formaalselt tähendab O(f(n)), et algoritmi tööaeg (või hõivatud mälumaht) ei kasva sõltuvalt sisendandmete suurusest kiiremini kui mingi konstant, mis on korrutatud f(n)-ga.

Näited

O(n) – lineaarne keerukus

Näiteks sortimata massiivi suurima elemendi leidmise algoritmil on selline keerukus. Peame läbima massiivi kõik n elementi, et mõista, milline neist on maksimaalne.

O(log n) – logaritmiline keerukus

Lihtsaim näide on binaarne otsing. Kui massiiv on sorteeritud, saame poolitamise meetodil kontrollida, kas see sisaldab teatud väärtust. Kontrollime keskmist elementi, kui see on otsitavast suurem, siis jätame massiivi teise poole kõrvale – seda seal kindlasti pole. Kui see on väiksem, siis vastupidi - jätame esialgse poole kõrvale. Ja nii jätkame pooleks jagamist ja lõpuks kontrollime logi n elementi.

O(n 2) - ruutkeskmine keerukus

Näiteks sisestussortimisalgoritmil on selline keerukus. Kanoonilises teostuses koosneb see kahest pesastatud tsüklist: üks kogu massiivi läbimiseks ja teine ​​juba sorteeritud osas järgmise elemendi koha leidmiseks. Seega sõltub toimingute arv massiivi suurusest n * n, st n 2.

Raskusastmeid on ka teisi, kuid need kõik põhinevad samal põhimõttel.

Juhtub ka seda, et algoritmi tööaeg ei sõltu üldse sisendandmete suurusest. Seejärel tähistatakse keerukust kui O(1) . Näiteks massiivi kolmanda elemendi väärtuse määramiseks ei pea elemente meeles pidama ega neid mitu korda läbi tegema. Alati tuleb lihtsalt oodata sisendandmevoo kolmandat elementi ja see on tulemus, mille arvutamiseks iga andmehulga puhul kulub sama palju aega.

Sama kehtib ka mälu hindamise kohta, kui see on oluline. Algoritmid võivad aga sisendandmete suuruse suurendamisel kasutada oluliselt rohkem mälu kui teised, kuid siiski töötavad kiiremini. Ja vastupidi. See aitab valida parimad viisid probleemide lahendamiseks, lähtudes praegustest tingimustest ja nõuetest.