Šiam straipsniui ar jo daliai trūksta išnašų į patikimus šaltinius Jūs galite padėti Vikipedijai pridėdami tinkamas išna
Vektorius (duomenų tipas)

Šiam straipsniui ar jo daliai trūksta išnašų į patikimus šaltinius. Jūs galite padėti Vikipedijai pridėdami tinkamas išnašas su šaltiniais. |
Vektoriaus abstraktus duomenų tipas dažniausia slepia masyvų funkcionalumą. Žodis „vektorius“ kilęs iš lotyniško žodžio vehere, kuris reiškia nešikas, nešiotojas, tas kuris neša.
Sąsaja
Vektorius turi funkcijas:
- Konstruktorius:
- inicializuoti() – konstruktorius, kuris inicializuoja vektorių.
- inicializavus vektorių tenkinama savybė, kad dydis()=0.
- Prieigos funkcijos:
- dydis() – grąžina vektoriuje esančių elementų skaičių.
- elementas(pos: sveikas skaičius) – grąžiną elementą esantį vektoriuje pozicijoje pos.
- prieš bandant pasiekti elementą turi būti tenkinama savybė, kad 0 ≤ pos ≤ dydis()
- Keitimo funkcijos:
- keisti(pos: sveikas skaičius, el: elementas) – keisti elementą el esantį pozicijoje pos.
- prieš bandant pasiekti elementą keitimui turi būti tenkinama savybė, kad 0 ≤ pos ≤ dydis()
- įterpti(pos: sveikas skaičius, el: elementas) – įterpti naują elementą el esantį pozicijoje pos paslenkant visus po jo esančius elementus dešinėn.
- trinti(pos: sveikas skaičius) – ištrinti elementą esantį pozicijoje pos.
Įgyvendinimas
- Vektorius gali būti įgyvendinamas panaudojant vienamatį masyvą. Kuomet įterpiant naujus elementus vektoriaus narių skaičius viršija masyvo ilgį, automatiškai sukuriamas naujas masyvas, į kurį nukopijuojami visi nariai. Naujas masyvas paprastai kuriamas maždaug dvigubai didesnis, nei anksčiau buvęs (tiksli reikšmė vadinamo šio vektoriaus įkrovos faktoriumi (angl. load factor). Funkcija dydis() šiuo atveju grąžina įterptų narių skaičių, neskaičiuodama kol kas nepanaudotų masyvo elementų (galima funkcija talpa() grąžintų skaičių su nepanaudotais elementais). Toks vektorius turi pastovią prieigos prie bet kurio elemento trukmę, kuri nepriklauso nuo elemento padėties. Bendru atveju prireikia operacijų naujam elementui įterpti ar pašalinti, tačiau paskutiniam elementui pašalinti pakanka . Jam įterpti, esant gerai parinktam įkrovos faktoriui, irgi paprasai gana labai artimos trukmės.
- Vektoriai taip pat įgyvendinami panaudojant nuorodomis susietus sąrašus (linked list). Toks vektorius daug greičiau įterpia ar pašalina pirmą elementą (, ne ), tačiau turi ilgesnę ir nuo elemento padėties priklausančią () prieigos trukmę. Tačiau jei elementai perrenkami paeiliui, prieigos trukmė sumažėja iki , kaip ir naudojant masyvą.
Jei tam neskirtu vektoriumi vienu metu manipuliuoja kelios gijos, tai gali sukelti lenktynių aplinką. Lygiagrečiam darbui skirtas vektorius vadinamas sinchronizuotu. Toks vektorius dirba lėčiau, todėl nenaudojamas be reikalo. Programavimo bibliotekos siūlo sinchronizuotus (pvz., Java kalbos ArrayList, LinkedList) ir nesinchronizuotus (pvz., Java kalbos Vector) vektoriaus įgyvendinimus.
ADT sudėtingumo įvertinimas
funkcija | sudėtingumas | |
---|---|---|
inicializuoti() | ||
dydis() | ||
elementas(pos: sveikas skaičius) | ||
keisti(pos: sveikas skaičius, el: elementas) | ||
iterpti(pos: sveikas skaičius, el:elementas) | ||
trinti(pos: sveikas skaičius) |
Autorius: www.NiNa.Az
Išleidimo data:
vikipedija, wiki, lietuvos, knyga, knygos, biblioteka, straipsnis, skaityti, atsisiųsti, nemokamai atsisiųsti, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, pictu, mobilusis, porn, telefonas, android, iOS, apple, mobile telefl, samsung, iPhone, xiomi, xiaomi, redmi, pornografija, honor, oppo, Nokia, Sonya, mi, pc, web, kompiuteris, Informacija apie Vektorius (duomenų tipas), Kas yra Vektorius (duomenų tipas)? Ką reiškia Vektorius (duomenų tipas)?
Siam straipsniui ar jo daliai truksta isnasu į patikimus saltinius Jus galite padeti Vikipedijai pridedami tinkamas isnasas su saltiniais Vektoriaus abstraktus duomenu tipas dazniausia slepia masyvu funkcionaluma Zodis vektorius kiles is lotynisko zodzio vehere kuris reiskia nesikas nesiotojas tas kuris nesa SasajaVektorius turi funkcijas Konstruktorius inicializuoti konstruktorius kuris inicializuoja vektoriu inicializavus vektoriu tenkinama savybe kad dydis 0 Prieigos funkcijos dydis grazina vektoriuje esanciu elementu skaiciu elementas pos sveikas skaicius grazina elementa esantį vektoriuje pozicijojepos pries bandant pasiekti elementa turi buti tenkinama savybe kad 0 pos dydis Keitimo funkcijos keisti pos sveikas skaicius el elementas keisti elementaelesantį pozicijojepos pries bandant pasiekti elementa keitimui turi buti tenkinama savybe kad 0 pos dydis įterpti pos sveikas skaicius el elementas įterpti nauja elementaelesantį pozicijojepospaslenkant visus po jo esancius elementus desinen trinti pos sveikas skaicius istrinti elementa esantį pozicijojepos ĮgyvendinimasVektorius gali buti įgyvendinamas panaudojant vienamatį masyva Kuomet įterpiant naujus elementus vektoriaus nariu skaicius virsija masyvo ilgį automatiskai sukuriamas naujas masyvas į kurį nukopijuojami visi nariai Naujas masyvas paprastai kuriamas mazdaug dvigubai didesnis nei anksciau buves tiksli reiksme vadinamo sio vektoriaus įkrovos faktoriumi angl load factor Funkcija dydis siuo atveju grazina įterptu nariu skaiciu neskaiciuodama kol kas nepanaudotu masyvo elementu galima funkcija talpa grazintu skaiciu su nepanaudotais elementais Toks vektorius turi pastovia prieigos prie bet kurio elemento trukme kuri nepriklauso nuo elemento padeties Bendru atveju prireikia O n displaystyle O n operaciju naujam elementui įterpti ar pasalinti taciau paskutiniam elementui pasalinti pakanka O 1 displaystyle O 1 Jam įterpti esant gerai parinktam įkrovos faktoriui irgi paprasai gana labai O 1 displaystyle O 1 artimos trukmes Vektoriai taip pat įgyvendinami panaudojant nuorodomis susietus sarasus linked list Toks vektorius daug greiciau įterpia ar pasalina pirma elementa O 1 displaystyle O 1 ne O n displaystyle O n taciau turi ilgesne ir nuo elemento padeties priklausancia O n displaystyle O n prieigos trukme Taciau jei elementai perrenkami paeiliui prieigos trukme sumazeja iki O 1 displaystyle O 1 kaip ir naudojant masyva Jei tam neskirtu vektoriumi vienu metu manipuliuoja kelios gijos tai gali sukelti lenktyniu aplinka Lygiagreciam darbui skirtas vektorius vadinamas sinchronizuotu Toks vektorius dirba leciau todel nenaudojamas be reikalo Programavimo bibliotekos siulo sinchronizuotus pvz Java kalbos ArrayList LinkedList ir nesinchronizuotus pvz Java kalbos Vector vektoriaus įgyvendinimus ADT sudetingumo įvertinimasfunkcija sudetingumasinicializuoti O 1 displaystyle O 1 dydis O 1 displaystyle O 1 elementas pos sveikas skaicius O 1 displaystyle O 1 keisti pos sveikas skaicius el elementas O 1 displaystyle O 1 iterpti pos sveikas skaicius el elementas O n displaystyle O n trinti pos sveikas skaicius O n displaystyle O n