scalabook
Массивы
Массив — это упорядоченная структура, индексированный набор связанных элементов.
Массив может быть представлен в виде последовательности: \(a_{0}, a_{1}, ..., a_{n}\),
где \(n\) — целое положительное число, большее \(1\). Нижние подстрочные символы — это индексы.
Одним из экземпляров этой общей последовательности является <a,e,i,o,u>
. В этом случае \(n = 5\).
Мы можем получить доступ к третьей гласной с помощью соответствующего индекса.
Если мы назовем эту последовательность как \(V\), то \(V_{3} = i\) при условии, что индексация начинается с \(1\).
Мы могли бы использовать такие обозначения, как V[3]
, V(3)
или Third(V)
.
Если индексация начинается с 0, тогда представление \(V_{2} = i\).
Различные языки программирования используют разные стили для представления массива.
Чтение, а также изменение элемента по заданному индексу i занимает время O(1).
Вставка элемента в i-ю позицию требует (n−i)
сдвига и, следовательно, это O(n−i);
аналогично удаление элемента по i-му индексу занимает O(n−i) времени.
Вставка элемента в полный массив требует создания нового массива большей емкости,
копирования всех элементов старого массива и вставки нового элемента.
val vowels = Array('a', 'e', 'i', 'o', 'u')// vowels: Array[Char] = Array('a', 'e', 'i', 'o', 'u')vowels(2)// res0: Char = 'i'val vowelsReversed = vowels.reverse// vowelsReversed: Array[Char] = Array('u', 'o', 'i', 'e', 'a')vowelsReversed(2)// res1: Char = 'i'vowels.length// res2: Int = 5
Ссылки: