Koti kehitys Mikä on ajan monimutkaisuus? - määritelmä techopediasta

Mikä on ajan monimutkaisuus? - määritelmä techopediasta

Sisällysluettelo:

Anonim

Määritelmä - mitä ajan monimutkaisuus tarkoittaa?

Ajan monimutkaisuus on tietotekniikan käsite, joka käsittelee sen määrän kvantifiointia, joka kuluu koodisarjalla tai algoritmilla prosessointiin tai ajamiseen syötteen määrän funktiona.

Toisin sanoen ajan monimutkaisuus on pääosin tehokkuutta tai sitä, kuinka kauan ohjelman toiminto kestää annetun syötteen käsittelyyn.

Techopedia selittää ajan monimutkaisuuden

Ajan monimutkaisuus on yksinkertaisesti mitata aikaa, joka tarvitaan funktiolta tai lausekkeelta tehtävän suorittamiseen, samoin kuin prosessin nimi kyseisen ajan mittaamiseksi. Sitä voidaan soveltaa melkein mihin tahansa algoritmiin tai funktioon, mutta se on hyödyllisempi rekursiivisille funktioille. Ei ole mitään järkeä mitata sovellusten aikaominaisuuksia, kuten käyttäjänimen ja salasanan hakeminen tietokannasta vertailua varten tai datan yksinkertainen tallentaminen riippumatta siitä, onko se 20 ms tai 5 ms; se olisi enemmän pääsyajan linjalla. Sillä ei ole mitään tekemistä sen toteuttamisajan hoidosta, vaan pikemminkin, että ero on vähäinen. Kuitenkin, jos on rekursiivinen toiminto, jota voidaan kutsua useita kertoja, sen aikakompleksisuuden lähteen määrittäminen ja ymmärtäminen voi auttaa lyhentämään kokonaisprosessointiaikaa esimerkiksi 600 ms: sta 100 ms: iin.

Ajan monimutkaisuus ilmaistaan ​​tyypillisesti "suuressa O-merkinnässä", mutta on myös muita merkintöjä. Tämä on matemaattinen esitys algoritmin skaalauskertoimen ylärajasta ja kirjoitetaan muodossa O (Nn), jolloin "N" on sisääntulojen lukumäärä ja "n" on silmukkalausekkeiden lukumäärä. Meillä on esimerkiksi algoritmi:

numbers = {5, 6, 10, 11, 2}; foreach (number as number1)



{


foreach(number as number2) {

statements; } } numbers = {5, 6, 10, 11, 2}; foreach (number as number1)



{


foreach(number as number2) {

statements; } }

numbers = {5, 6, 10, 11, 2}; foreach (number as number1)



{



foreach(number as number2) {

statements; } } numbers = {5, 6, 10, 11, 2}; foreach (number as number1)



{


foreach(number as number2) {

statements; } }

numbers = {5, 6, 10, 11, 2}; foreach (number as number1)



{


foreach(number as number2) {


statements; } }

"Numerot" -ryhmässä on viisi tuloa ja "foreach" -silmukka toistetaan kahdesti. Siksi prosessointiajan eksponentiaalinen kasvu tapahtuu, kun tulojen ja silmukoiden lukumäärä kasvaa.

Mikä on ajan monimutkaisuus? - määritelmä techopediasta