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

Allikas: Vikipeedia
Eemaldatud sisu Lisatud sisu
Kalmakar (arutelu | kaastöö)
Resümee puudub
HPook (arutelu | kaastöö)
Resümee puudub
1. rida: 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 | URL = http://enos.itcollege.ee/~jpoial/java/i200loeng4.html | Pealkiri = Meetod (alamprogramm) | Autor = Jaanus Pöial| Keel = eesti }}</ref>
'''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)|Väljaanne=|Aeg=|Kasutatud=06.12.2018|Keel=eesti}}</ref>


Massiivi tunnused:
Massiivi tunnused:
7. rida: 7. rida:
# indeksite arv,
# indeksite arv,
# elementide arv,
# elementide arv,
# elementide väärtused.<br>
# elementide väärtused.


Massiivid on ühed vanimad andmestruktuurid programmeerimises ja need leiavad kasutust peaaegu igas programmis. Neid kasutatakse paljude teiste struktuuride implementeerimiseks (näiteks loend (inglise keeles list) ja sõne (inglise keeles 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>.
Massiivid on ühed vanimad andmestruktuurid programmeerimises ja need leiavad kasutust peaaegu igas programmis. Neid kasutatakse paljude teiste struktuuride implementeerimiseks (näiteks loend (ingl ''list'') ja sõne (ingl ''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 ==
== 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; Hamprecht (2010). "Runtime-Flexible Multi-dimensional Arrays and Views for C++98 and C++0x". </ref>
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 ==
== 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 vahe).<ref>{{netiviide | URL = https://wiki.python.org/moin/TimeComplexity | Pealkiri = TimeComplexity | Autor = JonathanHartley | Aeg = 2017-06-05 19:58:18 | Keel = inglise }}</ref>
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 erinevus).<ref>{{netiviide|Autor=Jonathan Hartley|URL=https://wiki.python.org/moin/TimeComplexity|Pealkiri=TimeComplexity|Väljaanne=|Aeg=05.06.2017|Kasutatud=06.12.2018|Keel=inglise}}</ref>


== Viited ==
== Viited ==

Redaktsioon: 6. detsember 2018, kell 18:26

Massiiv on programmeerimises 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 , 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.[1]

Massiivi tunnused:

  1. nimi,
  2. elementide tüüp,
  3. indeksite arv,
  4. elementide arv,
  5. elementide väärtused.

Massiivid on ühed vanimad andmestruktuurid programmeerimises ja need leiavad kasutust peaaegu igas programmis. Neid kasutatakse paljude teiste struktuuride implementeerimiseks (näiteks loend (ingl list) ja sõne (ingl 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äluaadressi saab lihtsasti arvutada selle indeksi kaudu. Näiteks massiivis, mis asub mäluaadressil 2000, on element indeksiga aadressil .[2]

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 toetasid juba mitmemõõtmelisi massiive, sama tegi ka C keel.[3]

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 , kuid massiivi keskmine ajaline keerukus on , mis sõltuvalt selle massiivi suurusest võib olla väga suur erinevus).[4]

Viited

  1. Jaanus Pöial. "Meetod (alamprogramm)". Vaadatud 06.12.2018.
  2. Alex Chumbley, Thaddeus Abiy ja Krishna Ar. "Array (Data Structure)" (inglise). Vaadatud 06.12.2018.
  3. Bjoern Andres, Ullrich Koethe, Thorben Kroeger, Fred Hamprecht (2010). "Runtime-Flexible Multi-dimensional Arrays and Views for C++98 and C++0x".
  4. Jonathan Hartley (05.06.2017). "TimeComplexity" (inglise). Vaadatud 06.12.2018.