Масив (структура даних)

Маси́в — впорядкований набір фіксованої кількості однотипних елементів, що зберігаються в послідовно розташованих комірках оперативної пам'яті, мають порядковий номер і спільне ім'я, що надає користувач.

Характеристика масиву

  • Розмірність — кількість індексів елемента (одномірний, двовимірний, …, багатовимірний)
  • Розмір — загальна кількість елементів у масиві.
  • Масиви можуть бути числові, символьні й інших типів.
  • У кожній мові є свої правила опису масивів (у мові Бейсик — командою DIM <список масивів>]]).

У програмуванні масив (англ. array) — сукупність елементів одного типу даних, впорядкованих за індексами, які зазвичай репрезентовані натуральними числами, що визначають положення елемента в масиві.

Масив може бути одномірним (вектором), та багатовимірним (наприклад, таблицею), тобто таким, де індексом є не одне число, а кортеж (сукупність) з декількох чисел, кількість яких збігається з розмірністю масиву.

У більшості мов програмування масив є стандартною вбудованою структурою даних.

Переваги та недоліки

Ефективність операцій

Масиви ефективні при звертанні до довільного елементу, яке відбувається за постійний час (O(1)), однак такі операції як додавання та видалення елементу, потребують часу O(n), де n — розмір масиву. Тому масиви переважно використовуються для зберігання даних, до елементів яких відбувається довільний доступ без додавання або видалення нових елементів, тоді як для алгоритмів з інтенсивними операціями додавання та видалення, ефективнішими є зв'язані списки.

Збереження в пам'яті

Інша перевага масивів, яка є досить важливою — це можливість компактного збереження послідовності їхніх елементів у локальній області пам'яті (що не завжди вдається, наприклад, для зв'язаних списків), що дозволяє ефективно виконувати операції з послідовного обходу елементів таких масивів.

Масив є дуже економною щодо пам'яті структурою даних. Для збереження 100 цілих чисел у масиві необхідно рівно в 100 разів більше пам'яті, ніж для збереження одного числа (плюс, можливо, ще декілька байтів). Водночас, усі структури даних, які базуються на вказівниках, потребують додаткової пам'яті для збереження самих вказівників разом з даними. Однак, операції з фіксованими масивами ускладнюються тоді, коли виникає необхідність додавання нових елементів у вже заповнений масив. Тоді його необхідно розширювати, що не завжди можливо і для таких задач слід використовувати зв'язані списки, або динамічні масиви.

Індекси в масивах

У випадках, коли розмір масиву є досить великий та використання звичайного звертання за індексом стає проблематичним, або великий відсоток його комірок не використовується, слід звертатися до асоціативних масивів, де проблема індексування великих обсягів інформації вирішується більш оптимально.

З тієї причини, що масиви мають фіксовану довжину, слід дуже обережно ставитися до процедури звертання до елементів за їхнім індексом, тому що намагання звернутися до елемента, індекс якого перевищує розмір такого масива (наприклад, до елемента з індексом 6 у масиві з 5 елементів), може призвести до непередбачуваних наслідків.

Слід також бути уважним щодо принципів нумерації елементів масиву, яка в одних мовах програмування може починатись з 0, а в інших — з 1.

Зберігання багатовимірних масивів

Збереження одновимірного масиву в пам'яті є тривіальним, тому що сама пам'ять комп'ютера є одновимірним масивом. Для збереження багатовимірного масиву ситуація ускладнюється. Припустимо, що ми хочемо зберігати двовимірний масив такого вигляду:

Найпоширеніші способи його організації в пам'яті такі:

  • Розташування «рядок за рядком». Це найуживаніший на сьогодні спосіб, який зустрічається в більшості мов програмування.
1 2 3 4 5 6 7 8 9
  • Розташування «стовпчик за стовпчиком». Такий метод розташування масивів використовується, зокрема, у мові програмування Fortran
1 4 7 2 5 8 3 6 9
  • Масив з масивів. Багатовимірні масиви репрезентуються одновимірними масивами вказівників на одновимірні масиви. Розташування може бути як «рядок за рядком» так і «стовпчик за стовпчиком».
Двовимірний масив як масив вказівників на одновимірних масивів

Перші два способи дозволяють розміщувати дані компактніше (мають більшу локальність), однак це одночасно і обмеження: такі масиви мають бути «прямокутними», тобто кожний рядок повинен містити однакову кількість елементів. Розташування «масив з масивів», з іншого боку, не дуже ефективне щодо використання пам'яті (необхідно зберігати додатково інформацію про вказівники), але знімає обмеження на «прямокутність» масиву.

Див. також

Джерела

  • Дональд Кнут. Fundamental Algorithms // The Art of Computer Programming. — 3rd. — Massachusetts : Addison–Wesley, 1997. — Т. 1. — 650 с. — ISBN 0-201-89683-4.(англ.)
  • Т. Кормен; Ч. Лейзерсон; Р. Рівест; К. Стайн (2009) [1990]. 2 Загальні засади. Вступ до алгоритмів (вид. 3rd). MIT Press і McGraw-Hill. ISBN 0-262-03384-4.

Read other articles:

Podomoro UniversityJenisSwastaDidirikan2014RektorBacelius Ruru, S.H., LL.M.LokasiAPL Tower, Podomoro City, JakartaSitus webpodomorouniversity.ac.id Universitas Podomoro atau Universitas Agung Podomoro adalah sebuah perguruan tinggi di Indonesia yang didirikan oleh Yayasan Pendidikan Agung Podomoro pada tahun 2014. Yayasan Pendidikan Agung Podomoro termasuk bagian dari Agung Podomoro Group. Pendirian Universitas Agung Podomoro merupakan hasil kerja sama antara Agung Podomoro Group dengan Babso...

الباب المفتوحملصق الفيلممعلومات عامةالصنف الفني فيلم رومانسي[1] — فيلم دراما[1] تاريخ الصدور 7 أكتوبر 1963مدة العرض 120 دقيقةاللغة الأصلية العربيةالعرض أبيض وأسود البلد  مصرالجوائز جائزة أحسن ممثلة من مهرجان جاكارتا السينمائيجائزة أحسن فيلم من مهرجان جاكارتا السين

القوات البرية البرازيلية شعار القوات البرية البرازيلية. الدولة  البرازيل الإنشاء 1822-الآن الولاء وزارة الدفاع البرازيلية النوع قوات برية الحجم 222 الف جزء من القوات المسلحة البرازيلية  المقر الرئيسي برازيليا في القطاع الفدرالي البرازيلي شعار نصي ذراع قوية ويد صديقة 469...

  لمعانٍ أخرى، طالع جون كلارك (توضيح). هذه المقالة يتيمة إذ تصل إليها مقالات أخرى قليلة جدًا. فضلًا، ساعد بإضافة وصلة إليها في مقالات متعلقة بها. (يوليو 2019) جون كلارك معلومات شخصية الميلاد 20 فبراير 1952 (71 سنة)  مواطنة المملكة المتحدة  الحياة العملية المدرسة الأم كلية �...

  لمعانٍ أخرى، طالع العامرية (توضيح). العامرية  - منطقة سكنية -  تقسيم إداري البلد الأردن  المحافظة محافظة العاصمة لواء لواء ناعور قضاء قضاء ناعور السكان التعداد السكاني 1229 نسمة (إحصاء 2015)   • الذكور 662   • الإناث 567   • عدد الأسر 277 معلومات أخرى التوقيت

  فيلامايور دي سانتياغو (بالإسبانية: Villamayor de Santiago)‏[1]   - بلدية -    فيلامايور دي سانتياغو فيلامايور دي سانتياغو تقسيم إداري البلد إسبانيا  [2] المقاطعة قونكة خصائص جغرافية إحداثيات 39°43′43″N 2°55′37″W / 39.7286889°N 2.9270441°W / 39.7286889; -2.9270441[3]...

Artikel ini bukan mengenai La Plata, Buenos Aires. Sudut kota Mar del Plata Mar del Plata merupakan sebuah kota di Argentina. Kota ini terletak di bagian timur. Tepatnya di Provinsi Buenos Aires. Terletak 400 km selatan ibu kota Buenos Aires. Pada tahun 2001, kota ini memiliki jumlah penduduk sebesar 541.733 jiwa dan memiliki luas wilayah 79,48 km². Kota ini memiliki angka kepadatan penduduk sebesar 6.816 jiwa/km². Kota kembar Biarritz, Prancis Fort Lauderdale, Amerika Serikat San...

Political party in Turkey (1930) Liberal Republican Party Serbest Cumhuriyet FırkasıPresident and founderFethi OkyarGeneral SecretaryNuri ConkerFoundedAugust 12, 1930; 93 years ago (1930-08-12)DissolvedNovember 17, 1930; 93 years ago (1930-11-17)Split fromRepublican People's PartyHeadquartersAnkara, TurkeyIdeologyLiberalism[1]Liberal democracy[1]RepublicanismTurkish nationalismLaicismPolitical positionCentre-rightColours  Bl...

Town in Shropshire, England This article is about the town in Shropshire. For the engineer, see Thomas Telford. For other uses, see Telford (disambiguation). This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Telford – news · newspapers · books · scholar · JSTOR (May 2016) (Learn how and when to remove this tem...

Deity associated with the sky Air spirit redirects here. Not to be confused with Spirit Airlines. Spirits of the air redirects here. For the 1989 science fiction film, see Spirits of the Air, Gremlins of the Clouds. Spirit of the sky redirects here. Not to be confused with Spirit in the Sky. This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages) This article needs additional citations for verifi...

Historic house in Maryland, United States United States historic placeWilliam Chapline HouseU.S. National Register of Historic Places Show map of MarylandShow map of the United StatesLocation109 W. Main St., Sharpsburg, MarylandCoordinates39°27′30.61″N 77°44′53.66″W / 39.4585028°N 77.7482389°W / 39.4585028; -77.7482389Area0.2 acres (0.081 ha)Built1790 (1790)NRHP reference No.76001020[1]Added to NRHPOctober 8, 1976 The William Cha...

National Hero of Indonesia This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Alimin – news · newspapers · books · scholar · JSTOR (June 2012) (Learn how and when to remove this template message) AliminGeneral Secretary of theCommunist Party of IndonesiaIn office1926 – January 1951Succeeded byD. N. A...

3°08′40″N 101°41′51″E / 3.144444°N 101.697500°E / 3.144444; 101.697500Road and neighborhood in Kuala Lumpur, Malaysia Today a Green Dragon covers Petaling Street. Petaling Street (Malay: Jalan Petaling, Simplified Chinese: 茨厂街, Traditional Chinese: 茨廠街, pinyin: Cíchǎng Jiē, Cantonese jyutping: ci4 cong2 gaai1,Tamil: பெட்டாலிங் தெரு , Peṭṭāliṅ teru ) is a Chinatown located in Kuala Lumpur, Malaysia.[1]...

Hospital in EnglandSouthport and Formby District General HospitalMersey and West Lancashire Teaching Hospitals NHS TrustSouthport and Formby District General HospitalLocation in SouthportGeographyLocationSouthport, Merseyside, England, United KingdomCoordinates53°38′02″N 2°58′43″W / 53.6338°N 2.9787°W / 53.6338; -2.9787OrganisationCare systemPublic NHSTypeGeneral HospitalHistoryOpened1988LinksWebsiteso.merseywestlancs.nhs.uk/southport-hospitalListsHospitals...

Piano composition by Erik Satie Erik Satie Croquis et agaceries d'un gros bonhomme en bois, translated as Sketches and Exasperations of a Big Wooden Dummy,[1] is a 1913 piano composition by Erik Satie. One of his pre-World War I humoristic suites, it was published by E. Demets that same year.[2] Ricardo Viñes gave the premiere during a concert of the Société Nationale de Musique at the Salle Pleyel in Paris on March 28, 1914. A typical performance lasts about five minutes. ...

This is a list of fictional cats and felines and is a subsidiary to the list of fictional animals. It includes a limited selection of notable felines from various works, organized by medium. More complete lists are accessible by clicking on the Main article link included above each category. For fictional large felids such as lions and tigers, see List of fictional big cats. In literature This section deals with notable cat characters that appear in literature works of fiction including books...

Antoine Augustin Cournot Antoine Augustin Cournot (28 Agustus 1801 – 31 Maret 1877) adalah seorang filsuf, matematikawan dan ekonom Prancis yang merupakan salah satu pendiri Matematika ekonomi, yaitu penerapan ilmu matematika untuk menganalis permasalahan ekonomi.[1][2] Karya utamanya di bidang ekonomi adalah Recherches sur les principes mathématiques de la Théorie des richesses yang ia terbitkan pada tahun 1838.[1] Pada tahun 1821, Cournot menempuh p...

Stamford Street from Waterloo Road in 2016. Stamford Street is a street in Lambeth and Southwark, London, England, just south of the River Thames. It runs between Waterloo Road to the west and Blackfriars Road to the east. It forms part of the A3200. The street has a wide variety of buildings. There are two large Georgian terraces, a school and the entrance to a chapel from the 1820s; a Victorian bank and hotel; an Edwardian hospital now used for student accommodation; early 20th century indu...

Thomas HollandLambang Thomas Holland, Earl Pertama KentAyahRobert HollandIbuMaud la ZouchePasanganJoan dari KentAnakThomas Holland IIJohn HollandJaned HollandMaud, Comtesse Ligny Thomas Holland, Earl Pertama Kent, Baron Kedua Holland, KG (tahun 1314 – 26 Desember 1360) merupakan seorang bangsawan Inggris dan komandan militer selama Perang Seratus Tahun. Ia berasal dari golongan keluarga ningrat di Holland, Lancashire. Ia adalah putra Robert Holland dan Maud la Zouche. Pada awal karier milit...

Israeli scholar, specializing in Asian studies Nissim OtmazginNationalityIsraeliAlma materHebrew UniversityOccupationScholar Nissim Otmazgin (in Hebrew: ניסים אוטמזגין) is an Israeli scholar, specializing in the field of Asian studies. Since 2021, he has served as the Dean of the Faculty of Humanities at the Hebrew University of Jerusalem. Otmazgin has previously served as the Chair of the Institute for Asian and African Studies, as the Director of the Harry S. Truman Resear...