Kasutaja:Kalmakar/Massiiv (programmeerimine): erinevus redaktsioonide vahel

Eemaldatud sisu Lisatud sisu
Kalmakar (arutelu | kaastöö)
Resümee puudub
HPook (arutelu | kaastöö)
Resümee puudub
1. rida:
'''Massiiv''' on [[Programmeerimine|programmeerimises]] [[Andmestruktuur|andmestruktuur]], mis koosneb elementide hulgast, mis omakorda omavad igaüks oma massiiviindeksit (järjekorranumbrit) või võtit. Elementide indeksid üldjuhul algavad nullist ehk viimase massiiviliikme indeks on <math>massiivi \ pikkus - 1</math>, kuid siiski on ka keeli, mis lubavad alustada massiivi indeksiga 1 või hoopis indeksiga n. Kui keel lubab alustada massiivi suvalise indeksiga, siis tavaliselt võib selleks olla ka negatiivne arv. Massiivis on andmed hoitud nii, et iga elemendi asukohta on võimalik välja arvutada tema indeksi abil kasutades valemit. Massiivil võib olla indekseid rohkem kui üks – nii saadakse mitmemõõtmelised massiivid. Mitmemõõtmeline massiiv on massiiv, mille elementideks on omakorda massiivid. Ühemõõtmelist massiivi nimetatakse ka järjendiks, kahemõõtmelist maatriksiks või tabeliks. Kõik need massiivid võivad olla kas staatilised või dünaamilised. Staatiline on massiiv siis, kui tema mõõtmed on teada algusest peale ning hiljem ei saa neid muuta, kuid dünaamilise massiivi mõõtmeid on võimalik muuta käivitamisel. Massiivi üks suurimaid eeliseid on see, et nende elementidele saab suvaliselt ligi, tänu sellele on elementide võtmine indeksi alusel palju kiirem. Tavaliselt nimetatakse massiivis hoitavate tähetede kogumit sõneks.<ref>{{netiviide|Autor=Jaanus Pöial| URL = http://enos.itcollege.ee/~jpoial/java/i200loeng4.html | Pealkiri = Meetod (alamprogramm) | Autor Väljaanne= Jaanus Pöial| Aeg=|Kasutatud=06.12.2018|Keel = eesti }}</ref>
 
Massiivi tunnused:
7. rida:
# indeksite arv,
# elementide arv,
# elementide väärtused.<br>
 
Massiivid on ühed vanimad andmestruktuurid programmeerimises ja need leiavad kasutust peaaegu igas programmis. Neid kasutatakse paljude teiste struktuuride implementeerimiseks (näiteks loend (inglise keelesingl ''list'') ja sõne (inglise keelesingl ''string'')). Massiivid kasutavad väga hästi ära arvutite adresseerimisloogikat, nimelt uuemates arvutites ja välistel hoiuseadmetel on mälu ühemõõtmeline massiiv sõnu. Protsessorid on tihti optimiseeritud massiivide jaoks. Iga massiivi elemendi [[Mäluaadress|mäluaadressi]] saab lihtsasti arvutada selle indeksi kaudu. Näiteks massiivis, mis asub mäluaadressil 2000, on element indeksiga <math>i</math> aadressil <math>2000 + i * elemendi \ suurus</math>.<ref>{{netiviide|Autor=Alex Chumbley, Thaddeus Abiy ja Krishna Ar|URL=https://brilliant.org/wiki/arrays/|Pealkiri=Array (Data Structure)|Väljaanne=|Aeg=|Kasutatud=06.12.2018|Keel=inglise}}</ref>
<ref>{{netiviide | URL = https://brilliant.org/wiki/arrays/ | Pealkiri = Array (Data Structure) | Autor = Alex Chumbley, Thaddeus Abiy ja Krishna Ar | Keel = inglise }}</ref>
 
== Ajalugu ==
 
Esimesed arvutid kasutasid masinkeelt, et massiive luua ja neile ligi pääseda. John von Neumann kirjutas esimese sorteerimismeetodi massiividele ([[mestimissortimine]]) 1945. aastal. Masinkeeled ei toetanud üldjuhul enam massiive kui masin ise seda tegi, kuid esimesed programmeerimiskeeled nagu [[FORTRAN]], [[Lisp]], [[COBOL]] ja [[Algol-60|ALGOL 60]] toetasid juba mitmemõõtmelisi massiive, sama tegi ka C keel.<ref> Bjoern Andres;, Ullrich Koethe;, Thorben Kroeger;, Fred Hamprecht (2010). "Runtime-Flexible Multi-dimensional Arrays and Views for C++98 and C++0x". </ref>
 
== Kasutus ==
 
Massiive kasutatakse näiteks selleks, et implementeerida vektoreid ja maatrikseid. Mitmed andmebaasid, väiksed ja suured, koosnevad (või neis on) ühemõõtmelisest massiivist, mille elemendid on soovitud andmed. Massiive kasutatakse ka teiste andmestruktuuride implementeerimiseks nagu loend, kuhi, [[paisktabel]] ja sõne. Massiivipõhine struktuuride rakendamine on tihti kerge ja ruumi kokkuhoidev, kuid sellel on kehv keerukus võrreldes näiteks puupõhiste struktuuridega, eriti kui seda on muudetud (näiteks kui võrrelda massiiviga sorteerimist ja otsingupuud, siis puu struktuur on kiiruselt palju kiirem: puu keskmine ajaline keerukus on umbes <math>O(\log n)</math>, kuid massiivi keskmine ajaline keerukus on <math>O(n \log n)</math>, mis sõltuvalt selle massiivi suurusest võib olla väga suur vaheerinevus).<ref>{{netiviide |Autor=Jonathan Hartley|URL = https://wiki.python.org/moin/TimeComplexity | Pealkiri = TimeComplexity | Autor Väljaanne= JonathanHartley | Aeg = 05.06.2017-|Kasutatud=06-05 19:58:18 .12.2018| Keel = inglise }}</ref>
 
== Viited ==