Изучите базовые структуры данных за десять дней — день 3 (массив)

Вставьте сюда описание изображения

Основные понятия о массивах

Массив — это линейная структура данных, используемая для хранения элементов одного типа данных. Он имеет следующие основные понятия:

  • Элемент : каждый элемент данных в массиве называется элементом, который может быть целым числом, числом с плавающей запятой, символом и т. д.

  • Индекс : каждый элемент имеет уникальную позицию в массиве, называемую индексом. Индексы обычно начинаются с 0 и увеличиваются.

  • Размер : Размер массива относится к количеству элементов, которые он может содержать. Размер массива обычно фиксируется при его создании.

Характеристики, преимущества и недостатки массивов

Массивы имеют следующие характеристики, преимущества и недостатки:

Особенности :

  • Быстрый доступ . Благодаря индексированию вы можете быстро получить доступ к любому элементу массива с временной сложностью O (1).

Преимущества :

  • Быстрый доступ : массивы обеспечивают быстрый доступ, если известен индекс.
  • Непрерывное хранение : элементы массива хранятся в памяти последовательно, что повышает производительность кэширования.

Недостатки :

  • Фиксированный размер : как только размер массива определен, его обычно нельзя расширять или уменьшать динамически.
  • Вставка и удаление . Вставка или удаление элементов в массиве обычно требует перемещения других элементов, что приводит к сложности операции O(n).

Общие операции с массивами

Массивы поддерживают следующие общие операции:

  1. Доступ к элементам : доступ к элементам массива по индексу.

  2. Вставить элемент : вставьте новый элемент в указанную позицию, последующие элементы необходимо переместить.

  3. Удалить элемент : удалить элемент в указанной позиции, последующие элементы необходимо переместить.

  4. Получить размер массива : получить количество элементов в массиве.

Вот простой пример C++, который создает массив целых чисел, получает доступ к элементам и выполняет некоторые распространенные операции:

#include <iostream>

int main() {
    
    
    int myArray[5]; // 创建一个包含5个整数的数组

    // 初始化数组元素
    for (int i = 0; i < 5; i++) {
    
    
        myArray[i] = i * 2; // 设置每个元素的值为其索引的两倍
    }

    // 访问和打印数组元素
    std::cout << "第三个元素:" << myArray[2] << std::endl;

    // 插入元素
    myArray[5] = 10; // 在第六个位置插入元素10

    // 删除元素
    myArray[2] = myArray[3]; // 删除第三个元素,将第四个元素的值复制过来

    // 获取数组大小
    int size = sizeof(myArray) / sizeof(myArray[0]);
    std::cout << "数组大小:" << size << std::endl;

    return 0;
}

результат операции:
Вставьте сюда описание изображения

Практические вопросы:

  1. С какого номера начинаются индексы элементов массива?
  2. Какая характеристика массива обеспечивает очень быстрый доступ к элементу, если известен индекс?
  3. Описывает ситуацию, когда фиксированный размер массива может быть ограничивающим фактором.
  4. Как вставить новый элемент в массив? Какова временная сложность этой операции?

С какого номера начинаются индексы элементов массива?

Индекс элемента массива начинается с 0 . Это означает, что к первому элементу массива можно получить доступ по индексу 0, ко второму элементу — по индексу 1 и так далее.

Какая характеристика массива обеспечивает очень быстрый доступ к элементу, если известен индекс?

Причина, по которой доступ к элементам массива с известным индексом происходит очень быстро, заключается в том, что элементы массива хранятся в памяти последовательно . Компьютер может определить точное местоположение в памяти элемента, к которому осуществляется доступ, выполнив простые математические действия, например, умножить индекс на размер элемента, поэтому время доступа является постоянным временем (O (1)).

Описывает ситуацию, когда фиксированный размер массива может быть ограничивающим фактором.

Ситуации, когда фиксированный размер массива может быть ограничивающим фактором, включают:

  • Динамические данные : когда объем данных, которые необходимо сохранить, постоянно меняется во время работы программы, размер массива фиксируется. Если размер массива недостаточно велик для размещения новых данных, данные могут быть потеряны или для изменения размера массива могут потребоваться сложные операции.

  • Ограничения памяти . В среде с ограниченной памятью размер массива может быть ограничен. Если массив слишком велик, это может вызвать проблемы с нехваткой памяти, тем самым снижая производительность программы.

Как вставить новый элемент в массив? Какова временная сложность этой операции?

Вставка новых элементов в массив обычно включает в себя следующие шаги:

  • Переместить существующие элементы. Чтобы освободить место, все элементы после позиции вставки необходимо переместить на одну позицию назад.

  • Вставить новый элемент: поместите новый элемент в позицию вставки.

Временная сложность этой операции — O(n) , где n — размер массива, поскольку в худшем случае придется перемещать все последующие элементы. Следует отметить, что в случае частых операций вставки и удаления массив может быть не лучшим выбором структуры данных, поскольку его операции вставки и удаления менее эффективны. В этом случае более подходящими могут оказаться другие структуры данных, такие как связанные списки.

Supongo que te gusta

Origin blog.csdn.net/m0_53918860/article/details/133547050
Recomendado
Clasificación