– Algoritmi on vaiheittainen menettely, jossa määritellään joukko ohjeita voidaan suorittaa tietyssä järjestyksessä saada halutun tehon. Algoritmit luodaan yleensä riippumatta peruskielistä, eli algoritmi voidaan toteuttaa useammalla kuin yhdellä ohjelmointikielellä.,
tietorakenne näkökulmasta, seuraavat ovat joitakin tärkeitä luokkien algoritmeja, −
-
Haku − Algoritmi etsiä kohteen tiedot rakenne.
-
Lajittelualgoritmi esineiden lajitteluun tietyssä järjestyksessä.
-
Lisää − algoritmi, jolla kohde lisätään tietorakenteeseen.
-
päivitys − algoritmi olemassa olevan kohteen päivittämiseksi tietorakenteessa.
-
Delete − algoritmi olemassa olevan kohteen poistamiseksi tietorakenteesta.
Ominaisuudet Algoritmi
Ei kaikki menettelyt voidaan kutsua algoritmi., Algoritmin pitäisi olla seuraavat ominaisuudet −
-
Yksiselitteinen − Algoritmi pitäisi olla selkeä ja yksiselitteinen. Kunkin vaiheen (tai vaiheen), ja niiden panosten/tuotosten olisi oltava selkeitä, ja niiden on johdettava vain yhteen merkitykseen.
-
Input − algoritmi pitäisi olla 0 tai enemmän hyvin määritelty tuloa.
-
ulostulo − algoritmilla pitäisi olla 1 tai useampi tarkkaan määritelty ulostulo, ja sen tulisi vastata haluttua ulostuloa.
-
Finiteness − algoritmit päättyvät äärellisen askelmäärän jälkeen.,
-
toteutettavuus − olisi toteutettavissa käytettävissä olevilla resursseilla.
-
Independent − algoritmi pitäisi olla step-by-step ohjeet, joiden olisi oltava riippumattomia kaikista ohjelmointi koodi.
miten algoritmi kirjoitetaan?
algoritmien kirjoittamiselle ei ole tarkkaan määriteltyjä standardeja. Se on pikemminkin ongelma-ja resurssiriippuvainen. Algoritmeja ei koskaan kirjoiteta tukemaan tiettyä ohjelmakoodia.
Kuten tiedämme, että kaikki ohjelmointikielet jakaa basic-koodia rakenteita, kuten silmukoita (do, for, while), flow-control (if-else), jne., Näitä yleisiä konstruktioita voidaan käyttää algoritmin kirjoittamiseen.
kirjoitetaan algoritmeja askel askeleelta, mutta aina näin ei ole. Algoritmin kirjoittaminen on prosessi ja suoritetaan sen jälkeen, kun ongelma-alue on hyvin määritelty. Toisin sanoen meidän pitäisi tietää ongelma-alue, johon suunnittelemme ratkaisua.
esimerkki
Let”s yrittää oppia algoritmin kirjoittamista esimerkin avulla.
Problem − Design an algorithm to add two numbers and display the result.
Step 1 − STARTStep 2 − declare three integers a, b & cStep 3 − define values of a & bStep 4 − add values of a & bStep 5 − store output of step 4 to cStep 6 − print cStep 7 − STOP
algoritmit kertovat ohjelmoijille, miten ohjelmaa koodataan., Vaihtoehtoisesti algoritmi voidaan kirjoittaa muodossa –
Step 1 − START ADDStep 2 − get values of a & bStep 3 − c ← a + bStep 4 − display cStep 5 − STOP
algoritmien suunnittelussa ja analyysissä, yleensä algoritmin kuvaamiseen käytetään toista menetelmää. Se tekee analyytikon helpoksi analysoida algoritmia sivuuttaen kaikki ei-toivotut määritelmät. Hän voi tarkkailla, mitä operaatioita käytetään ja miten prosessi etenee.
askelmäärien kirjoittaminen on vapaaehtoista.
suunnittelemme algoritmin, jolla saadaan ratkaisu tiettyyn ongelmaan. Ongelma voidaan ratkaista useammalla kuin yhdellä tavalla.,
siksi monia ratkaisualgoritmeja voidaan johtaa tietylle ongelmalle. Seuraava askel on analysoida näitä ehdotettuja ratkaisualgoritmeja ja toteuttaa paras sopiva ratkaisu.
algoritmin analyysi
algoritmin tehokkuus voidaan analysoida kahdessa eri vaiheessa ennen toteutusta ja toteutuksen jälkeen. Ne ovat seuraavat −
-
A Priori-Analyysi − Tämä on teoreettinen analyysi algoritmi., Algoritmin hyötysuhdetta mitataan olettamalla, että kaikki muut tekijät, esimerkiksi prosessorin nopeus, ovat vakio eikä niillä ole vaikutusta toteutukseen.
-
posteriorinen analyysi − Tämä on empiirinen analyysi algoritmista. Valittu algoritmi toteutetaan ohjelmointikielellä. Tämä suoritetaan sitten kohdetietokoneella. Tässä analyysissä kerätään varsinaisia tilastoja, kuten juoksuaikaa ja tarvittavaa tilaa.
saamme tietää priori-algoritmianalyysistä., Algoritmianalyysi käsittelee eri operaatioiden toteutusta tai käyttöaikaa. Toiminta-aika toiminta voidaan määritellä useita tietokoneen ohjeet teloitettiin per operaatio.
Algoritmi Monimutkaisuus
Oletetaan, että X on algoritmi, ja n on koko syöttö tiedot, aikaa ja tilaa käyttämä algoritmi X ovat kaksi päätekijää, jotka päättävät tehokkuutta X.
-
Aika Tekijä − Aika on mitattu laskemalla useita keskeisiä toimintoja, kuten vertailuja lajittelu algoritmi.,
-
Avaruuskerroin − avaruus mitataan laskemalla algoritmin vaatima suurin muistiavaruus.
monimutkaisuus algoritmin f(n) antaa toiminta-aikaa ja/tai varastoinnin vaatima tila algoritmin kannalta n kuin koko lähtötiedot.
– Avaruus Monimutkaisuus
– Avaruus monimutkaisuus algoritmin edustaa määrä muistia tarvitaan algoritmi sen elinkaaren aikana., Tilaa tarvitaan algoritmi on yhtä suuri summa kaksi seuraavaa osat −
-
kiinteä osa, joka on tilaa tarvitse tallentaa tiettyjä tietoja ja muuttujia, jotka ovat riippumattomia koko ongelma. Esimerkiksi käytetyt yksinkertaiset muuttujat ja vakiot, ohjelman koko jne.
-
muuttuva osa on tilaa vaatimat muuttujat, joiden koko riippuu koosta ongelma. Esimerkiksi dynaaminen muistin allokointi, rekursion pinoavaruus jne.,
– Avaruus monimutkaisuus S(P) tahansa algoritmi S on S(P) = C + SP(I), missä C on kiinteä osa ja S(I) on muuttuva osa algoritmi, joka riippuu esimerkiksi ominaisuus I. Seuraavassa on yksinkertainen esimerkki, joka yrittää selittää käsite −
Algorithm: SUM(A, B)Step 1 - STARTStep 2 - C ← A + B + 10Step 3 - Stop
– Täällä meillä on kolme muuttujaa A, B, ja C ja yksi vakio. Näin ollen S(P) = 1 + 3. Nyt, tila riippuu tietoa tyyppisiä koska muuttujat ja vakio tyypit ja se kerrotaan vastaavasti.,
Ajassa
aikakompleksisuus algoritmin edustaa määrä aikaa, joka tarvitaan algoritmi ajaa loppuun. Aika vaatimukset voidaan määritellä numeerinen funktio T(n), missä T(n) voidaan mitata useita vaiheita, edellyttäen, että jokainen askel kuluttaa jatkuvasti ajan.
esimerkiksi kahden n-bittisen kokonaisluvun lisääminen ottaa n-askeleita. Näin ollen yhteensä laskennallinen aika on T(n) = c ∗ n, jossa c on aika, joka kuluu lisäksi kaksi bittiä. Tässä, havaitsemme, että T (n) kasvaa lineaarisesti, kun panos koko kasvaa.,