Асоцијативни низ

У информатици, асоцијативни низ, мапа или речник, представља апстрактни тип података скуп парова кључ:вредност, тако да је кључ јединствен, односно појављује се само једном у скупу.

Операције везане за овај тип података:[1][2]

  • додавање парова скупу
  • уклањање парова из скупа
  • измена вредности постојећих парова
  • проналажење вредности везане за одређен кључ

Проблем речника представља задатак дизајнирања структуре података, која имплементира асоцијативни низ. Уобичајено решење проблема речника су хеш табеле, док је у неким случајевима проблем могуће решити коришћењем дирекотно повезаних низова, бинарних стабала претраге или других специјализованих структура.[1][2][3] Многи програмски језици укључују асоцијативне низове у основне типове података, док су за многе друге доступни у библиотекама. Асоцијативна меморија је директна хардверска подршка асоцијативним низовима.

Асоцијативни низови имају широку примену укључујући и основне шаблоне попут мемоизације и декоратора шаблона.[4]

Операције

У асоцијативном низу, веза између кључа и вредности је позната као везивање, а исти термин се може односити и на процес креирања нове везе.

Операције које су обично дефинисане су:[1][2]

  • Додавање или уметање: додаје нови кључ:вредност пар у колекцију, везујући нови кључ и додељену вредност. Аргументи ове операције су кључ и вредност.
  • Замена: мења вредност једног кључ:вредност пара који се већ налази у колекцији, везујући стари кључ и нову вредност. Као и код уметања, аргументи ове операције су кључ и вредност.
  • Уклањање или брисање: уклања кључ:вредност пар из колекције, бришући везу између датог кључа и његове вредности. Аргумент ове операције је кључ.
  • Претрага: проналази вредност (уколико постоји) која је везана за дати кључ. Аргумент ове операције је кључ, а враћа се вредност. Уколико вредност није пронађена, неке имплементације асоцијативних низова креирају изузетак.

Додатно, асоцијативни низови могу укључити друге операције попут одређивање броја везивања или конструисање итератора којим би се, кроз петљу, прошло кроз сва везивања. Обично се за такву операцију ред у коме се враћају везивања бира случајно. Мултимапа генерализује асоцијативни низ омогућујући да више вредности буду везане за један кључ.[5] Двосмерна мапа је повезани апстрактни тип података, у којој везивања раде у оба смера: свака вредност мора бити везана јединственим кључем, а друга операција претраге узима вредност као аргумент и проналази кључ везан за ту вредност.

Примери

Претпоставимо да је скуп изнајмљивања књига у библиотеци представљен у облику структуре података. Свака књига у библиотеци, у одређеном тренутку, може бити изнајмљена од стране само једног члана. Такође, један члан може изнајмити више књига. Стога, информације о томе која књига је издата ком члану, може бити представљена асоцијативним низом, где су књиге кључеви, а чланови су вредности. На пример (користећи Пајтон нотацију, где су везе представљене постављањем колоне између кључа и вредности), текућа изнајмљивања могу бити приказана асоцијативним низом.

{
    "Great Expectations": "John",
    "Pride and Prejudice": "Alice",
    "Wuthering Heights": "Alice"
}

Операција претраге са кључем "Great Expectations", у овом низу би вратила име особе која је изнајмила ту књигу, Џона. Уколико би Џон вратио књигу, то би проузроковало операцију брисања у низу, а ако би Пет изнајмио нову књигу, то би довело до операције додавања, а што би довело до новог стања.

{
    "Pride and Prejudice": "Alice",
    "The Brothers Karamazov": "Pat",
    "Wuthering Heights": "Alice"
}

У новом стању, иста претрага са кључем "Great Expectations" би створила изузетак, пошто овај кључ више не постоји у низу.

Имплементација

За речнике са малим бројем везивања, има смисла имплементирати речник користећи асоцијативну листу, повезану листу везивања. У овој имплементацији, временска сложеност је линеарна и зависи од укупног броја везивања. Међутим, лака је за имплементацију и фактори временске сложености су мали.[1][6] Још једна једноставна имплементациона техника, употребљива када је кључ ограничен на узак скуп целих бројева, је директно адресирање у низу: вредност датог кључа к се чува у ћелији низа А[к], или укуолико нема везивања за к, онда ћелија чува променљиве чуваре које дају назнаку непостојања везе. Поред тога што је једноставна, ова техника је и брза: свака операција над речником има константно трајање. Међутим, просторна сложеност је велика, што ову технику чини непрактичном.[3] Најчешће коришћена универзална имплементација асоцијативног низа је хеш табела: Низ везивања са хеш функцијом која мапира сваки могући кључ у индекс низа. Основна идеја хеш табела је да је везивање за сваки дати кључ, сачувано на позицији добијеној применом хеш функције на дати кључ, а операције претраге се врше посматрањем те ћелије низа и употребом везе у њој. Међутим, речници засновани на хеш таблицама, морају бити у могућности да рукују колизијама, које настају када су два кључа мапирана на исти индекс од стране хеш функције. Многе различите стратегије за избегавање колизије су развијене, а често су базиране на затвореном хеширању или хеш везивању.[1][2][3] Речници такође могу бити складиштени у облику бинарних стабала претраге или у структурама података специјализованим за посебне врсте кључева као што су радикс стабла, Џуди низови или фон Емде Боа стабла, али су те имплементације мање ефикасне од хеш табела, а такође су рестриктивније према типовима података којим могу да рукују. Њихова предност је у томе што могу да рукују већим бројем операција од основних асоцијативних низова, као што су проналажење везивања чији је кључ најближи датом кључу, а дати кључ се не налази у скупу везивања.

Језичка подршка

Асоцијативни низови могу бити имплементирани у било ком језику у облику пакета, док су код неких присутни у стандардним библиотекама. У неким језицима, не само да су имплементирани у стандардним библиотекма, већ имају и посебну синтаксу.

Уграђена подршка за асоцијативне низове је уведена у SNOBOL4, под називом "табела“. SETL их је подржавао као једна од могућих имплементација сетова и мапа. Многи модерни скрипт језици, почевши од AWK и укључујући Perl, Tcl, JavaScript, Пајтон, Ruby и Lua подржавају асоцијативне низове као примарне контејнерске типове. У многим другим језицима доступни су као функције библиотеке без специјалне синтаксе.

Референце

  1. ^ а б в г д Goodrich, Michael T.; Tamassia, Roberto (2006), „9.1 The Map Abstract Data Type”, Data Structures & Algorithms in Java (4th изд.), Wiley, стр. 368—371 
  2. ^ а б в г Mehlhorn, Kurt; Sanders, Peter (2008), „4 Hash Tables and Associative Arrays”, Algorithms and Data Structures: The Basic Toolbox, Springer, стр. 81—98 
  3. ^ а б в Cormen, Thomas H. (2001), „11 Hash Tables”, Introduction to Algorithms, Leiserson, Charles E.; Rivest, Ronald L.; Stein, Clifford (2nd изд.), MIT Press and McGraw-Hill, стр. 221—252, ISBN 978-0-262-03293-3 
  4. ^ Goodrich & Tamassia 2006, стр. 597–599
  5. ^ Goodrich & Tamassia 2006, стр. 389–397
  6. ^ „When should I use a hash table instead of an association list?”. lisp-faq/part2. 20. 2. 1996. 

Спољашње везе

Read other articles:

Theisseil Lambang kebesaranLetak Theisseil NegaraJermanNegara bagianBayernWilayahOberpfalzKreisNeustadt a.d.WaldnaabMunicipal assoc.Neustadt an der Waldnaab Pemerintahan • MayorMarianne Rauh (CSU)Luas • Total21,40 km2 (830 sq mi)Ketinggian557 m (1,827 ft)Populasi (2013-12-31)[1] • Total1.186 • Kepadatan0,55/km2 (1,4/sq mi)Zona waktuWET/WMPET (UTC+1/+2)Kode pos92637Kode area telepon09602 0961Pelat kendar...

 

Schweden  Mikael Johansson Geburtsdatum 27. Juni 1985 Geburtsort Arvika, Schweden Größe 174 cm Gewicht 84 kg Position Center Schusshand Links Draft NHL Entry Draft 2003, 9. Runde, 289. PositionDetroit Red Wings Karrierestationen bis 2003 Arvika HC 2003–2004 Skåre BK 2004–2005 Bofors IK 2005–2009 Färjestad BK 2009–2010 Hamilton Bulldogs 2010–2013 Färjestad BK 2013–2014 Leksands IF 2014–2015 Rapperswil-Jona Lakers 2015–2016 Färjestad BK 2016 HK Lada Toljatti 2016...

 

Schweden  Börje Salming Hockey Hall of Fame, 1996 IIHF Hall of Fame, 1998 Geburtsdatum 17. April 1951 Geburtsort Kiruna, Schweden Todesdatum 24. November 2022 Sterbeort Nacka, Schweden Größe 185 cm Gewicht 95 kg Position Verteidiger Nummer #21 Schusshand Links Karrierestationen bis 1970 Kiruna AIF 1970–1973 Brynäs IF 1973–1989 Toronto Maple Leafs 1989–1990 Detroit Red Wings 1990–1993 AIK Solna Anders Börje Salming (* 17. April 1951 in Kiruna; † 24. November 2022 in Na...

تأثرت السينما المصرية والعالمية في هذا العام بسبب جائحة فيروس كورونا، حيث تم تأجيل وإلغاء عرض العديد من الأفلام نتيجة للإجراءات الاحترازية المتبعة لتفادي الجائحة. قائمة الأفلام هذه قائمة الأفلام المصرية لعام 2020 مرتبة حسب تاريخ الإصدار: اسم الفيلم تأليف وإخراج بطولة إنتاج

 

У Вікіпедії є статті про інші значення цього терміна: Києво-Могилянська академія (значення). Національний університет «Києво-Могилянська академія»НаУКМА|день університету Циркульний корпус НаУКМА КиївНазва латиною Academia Kiioviensis MohileanaТип національний, класичнийКраїна  

 

Groupement de Recherche et d'Etudes en Gestion à HEC ParisIndustriekonomi dan manajemenDidirikan2006; 17 tahun lalu (2006)PendiriHEC ParisKantorpusatJouy-en-Josas, PrancisTokohkunciChristophe Pérignon (CEO)Situs webwww.hec.edu/en/faculty-research/centers/greghec Groupement de Recherche et d'Etudes en Gestion à HEC Paris (GREGHEC) adalah laboratorium penelitian bersama CNRS - HEC Paris. Terletak di kampus HEC di Jouy-en-Josas. GREGHEC adalah salah satu laboratorium penelitian gabungan ...

British electronic music duo Jadu HeartDiva Jeffrey in 2019Background informationOriginLondon, EnglandGenres Dream pop Shoegaze Folktronica Indie rock Grunge Alternative Years active2016–presentLabels VLF Records[1] Anchor Point Records[2] Members Diva-Sachy Jeffrey Alex Headford Websitejaduheart.com Jadu Heart is an English musical duo composed of Diva Jeffrey and Alex Headford. They have gained recognition for their independent approach to music production and their explor...

 

2006 Indian filmGodavariTheatrical posterDirected bySekhar KammulaWritten bySekhar KammulaProduced byG. V. G. RajuStarringSumanthKamalinee MukherjeeNeetu ChandraCinematographyVijay C. KumarEdited byMarthand K. VenkateshMusic byK. M. Radha KrishnanProductioncompanySSC ArtsDistributed byAmigos Creations KAD Entertainment (USA)Release date19 May 2006[1]Running time160 minutesCountryIndiaLanguageTelugu Godavari is a 2006 Indian Telugu-language romantic comedy drama film written and direct...

 

  لمعانٍ أخرى، طالع جورج ستانلي (توضيح). جورج ستانلي معلومات شخصية الميلاد سنة 1903  ايوتا  تاريخ الوفاة سنة 1973 (69–70 سنة)  مواطنة الولايات المتحدة  الحياة العملية المهنة نحات  تعديل مصدري - تعديل   جورج ستانلي (بالإنجليزية: George Stanley)‏ هو نحات أمريكي، ولد في...

Babirusa sulawesi-utara Babyrousa celebensis B. celebensis jantan dewasaStatus konservasiRentanIUCN136446 TaksonomiKerajaanAnimaliaFilumChordataKelasMammaliaOrdoArtiodactylaFamiliSuidaeTribusBabyrousiniGenusBabyrousaSpesiesBabyrousa celebensis Distribusi lbs Babirusa sulawesi-utara (Babyrousa celebensis) adalah babirusa yang berasal dari Sulawesi dan beberapa pulau terdekat (Lembeh, Buton dan Muna) di Indonesia.[1] Spesies ini memiliki dua pasang gading besar yang terdiri dari gigi ta...

 

Women's professional wrestling championship in All Elite Wrestling (AEW) AEW TBS ChampionshipThe TBS Championship beltDetailsPromotionAll Elite WrestlingDate establishedOctober 6, 2021Current champion(s)Julia HartDate wonNovember 18, 2023StatisticsFirst champion(s)Jade CargillMost reignsAll titleholders (1)Longest reignJade Cargill(508 days)Shortest reignKris Statlander(174 days)Oldest championJade Cargill(29 years, 216 days)Youngest championJulia Hart(22 years, 10 days)He...

 

У этого термина существуют и другие значения, см. Триллер (значения). Кадр из фильма «Безопасность прениже всего!» (1923) Три́ллер (от англ. thrill «трепет, волнение») — жанр произведений литературы и кино, нацеленный вызвать у зрителя или читателя чувства тревожного ож...

Marjorie LordLord di The Middleton Family at the New York World's FairLahirMarjorie Wollenberg(1918-07-26)26 Juli 1918[1][2]San Francisco, California, A.S.Meninggal28 November 2015(2015-11-28) (umur 97)Beverly Hills, California, A.S.PekerjaanAktrisTahun aktif1935–2008Suami/istriJohn Archer ​ ​(m. 1941; c. 1955)​ Randolph Hale ​ ​(m. 1958; meninggal 1974)​ Harry Volk R...

 

Rugby playerJonah PlacidPlacid in 2014 playing for Melbourne RisingBirth nameJonah PlacidDate of birth (1995-05-14) 14 May 1995 (age 28)Place of birthOrange, New South Wales, AustraliaHeight1.81 m (5 ft 11+1⁄2 in)Weight97 kg (15 st 4 lb)SchoolNudgee CollegeRugby union careerPosition(s) FullbackCurrent team ToulonAmateur team(s)Years Team Apps (Points) Easts Wests Scarborough ()Senior careerYears Team Apps (Points)2017–2020 Toulon 11 (0)Provincial / State ...

 

American actor and writer (1925–2019) Jan MerlinMerlin in 2013BornJan Wasylewski(1925-04-03)April 3, 1925New York City, U.S.DiedSeptember 20, 2019(2019-09-20) (aged 94)Los Angeles, California, U.S.Occupation(s)Actor, author, screenwriterYears active1946–1992Spouse(s)Patricia Ann Datz (married 1951–1986, her death); Barbara Doyle (married 1988–2019, his death)Children1AwardsGolden Halo Award, 2009 (from Southern California Motion Picture Council) Jan Merlin (born Jan Wasylews...

Voce principale: Novara Calcio. Associazione Calcio NovaraStagione 1977-1978Sport calcio Squadra Novara Allenatore Franco Viviani Presidente Santino Tarantola (Amministratore Unico) Serie C5º posto nel girone A. Coppa Italia Semiprosemifinali Maggiori presenzeCampionato: Bacchin (37) Miglior marcatoreCampionato: Vriz (16) 1976-1977 1978-1979 Si invita a seguire il modello di voce Questa pagina raccoglie le informazioni riguardanti l'Associazione Calcio Novara nelle competizioni ufficial...

 

King of the Zulus Solomon kaDinuzulu Nkayishana Maphumzana 'Phumuzuzulu' Solomon kaDinuzulu (1891 – 4 March 1933) was the king of the Zulu nation from 1913 until his death on 4 March 1933 at Kambi at the age of 41 or 42. He was born on the island of St. Helena during the exile there of his father, king Dinuzulu kaCetshwayo. In conjunction with the ANC he was a founder of the original Inkatha (or Inkatha kaZulu as it was known) in the 1920s. It was mainly formed to act as a rallying point ag...

 

Logo Konferensi Waligereja Indonesia Berikut ini merupakan daftar keuskupan-keuskupan Gereja Katolik di Indonesia, yaitu yurisdiksi gerejawi Gereja Katolik yang bertempat di wilayah administratif negara Republik Indonesia. Seluruh Hierarki Gereja Katolik di Indonesia terafiliasi dalam yurisdiksi Gereja Latin yang menggunakan Ritus liturgi Romawi (Latin). Dengan demikian, tidak ada yurisdiksi Gereja-Gereja Katolik Timur di Indonesia. Yurisdiksi Gereja Katolik di Indonesia saat ini terdiri dari...

1991 Indian filmNumbri Aadmi नंबरी आदमीPromotional posterDirected bySwaroop KumarWritten byP D Mehra ShaktimaanDharmveer RamProduced byDimppyStarringMithun ChakrabortySangeeta BijlaniKimi KatkarSonu WaliaAmrish PuriCinematographyAnil MitraMusic byBappi LahiriProductioncompanyMukul InternationalRelease date 1 March 1991 (1991-03-01) (India) Running time125 minutesCountryIndiaLanguageHindi Numbri Aadmi (Man with Number) is a 1991 Indian Hindi-language actio...

 

العلاقات الأنغولية التنزانية أنغولا تنزانيا   أنغولا   تنزانيا تعديل مصدري - تعديل   العلاقات الأنغولية التنزانية هي العلاقات الثنائية التي تجمع بين أنغولا وتنزانيا.[1][2][3][4][5] مقارنة بين البلدين هذه مقارنة عامة ومرجعية للدولتين: وجه المقا...

 

Strategi Solo vs Squad di Free Fire: Cara Menang Mudah!