#3. Статический массив. Структура, его преимущества и недостатки | Структуры данных

  Рет қаралды 21,469

selfedu

selfedu

Күн бұрын

Обучающий курс: stepik.org/a/1...
Инфо-сайт: proproprogs.ru...
Узнаете, что из себя представляет статический массив. Когда его целесообразно использовать. Как выполняется доступ к произвольному элементу статического массива. Алгоритмы удаления и вставки элементов в таком массиве.

Пікірлер: 46
@non5309
@non5309 2 жыл бұрын
Если автор также просто подробно и понятно в дальнейшем объяснит более сложные вещи типа графов, будет супер!
@vladvlad2798
@vladvlad2798 Жыл бұрын
Здравствуйте! Хотел бы выразить огромную благодарность за ваш труд. С ваших видео по ООП я начинал учить Python 3 года назад и сейчас уже работаю в it. Было сложно так как никогда себя не считал технарём, но всё-таки смог и в этом большая часть ваших заслуг! Ещё раз спасибо!
@selfedu_rus
@selfedu_rus Жыл бұрын
Круто! И дальнейших успехов!!!
@Evg2002
@Evg2002 Жыл бұрын
Спасибо вам за все что вы делаете!
@ЕрвандАгаджанян-в3к
@ЕрвандАгаджанян-в3к 2 жыл бұрын
Просто потрясающе! Лучший на ютубе!!!!
@ec10nr34
@ec10nr34 2 жыл бұрын
Спасибо вам! Очень классно и понятно преподнесли информацию)
@AntonShaban-pn9uk
@AntonShaban-pn9uk 3 ай бұрын
это просто шикарно
@siarheiulas6969
@siarheiulas6969 Жыл бұрын
Просто супер!!! Так разложено всё по полочкам! Огромное спасибо!
@solo-angel
@solo-angel Жыл бұрын
Все четко и понятно! Добра вам!
@Максим-т5ш8и
@Максим-т5ш8и Жыл бұрын
Класс, теперь понимаю почему в списках первый элемент нулевой
@spikespiegel4282
@spikespiegel4282 2 жыл бұрын
Спасибо большое за материал!!!
@mrup7192
@mrup7192 Жыл бұрын
Вот тебе и стращная адресная арифметика )
@zakirovio
@zakirovio Жыл бұрын
верно ли это утверждение: запись элемента в ячейку с определенным индексом предполагает замену уже существующей записи. Вставку в пустую ячейку в конце массива можно приравнять к записи в пустую ячейку. А вставку по индексу, с уже существующей записью нет, так как при вставке добавляется новый элемент, а старые сдвигаются вправо, а при записи нет.
@selfedu_rus
@selfedu_rus Жыл бұрын
Согласен, кроме этой фразы "Вставку в пустую ячейку в конце массива можно приравнять к записи в пустую ячейку". Нет понятия "пустая ячейка". Просто ячейка, в которую можно занести нужное нам значение.
@zakirovio
@zakirovio Жыл бұрын
@@selfedu_rus благодарю!
@ДмитрийШажко-к6к
@ДмитрийШажко-к6к Жыл бұрын
Очень классное видео!) Но есть вопрос: если это массив статический? то каким образом туда можно добавить новый элемент или удалить? Ведь количество элементов фиксированное и по идеи изменить размер массива никак нельзя. Получается в статическом массиве вставка - это запись нового значение в ячейку массива, а удаление - это запись в ячейку значения NULL. Или я не так что то понял?
@selfedu_rus
@selfedu_rus Жыл бұрын
Спасибо! Да, понятие вставки/удаления - это не физически новый элемент, а работа с существующими ячейками. Обычно есть доп переменная length, которая хранит число подряд записанных значений (начиная с первого). И мы можем вставлять новые значения, скажем, во 2-ю ячейку или 3-ю. Соответственно length + 1 и все существующие значения сдвигаются вправо. Это и есть смысл вставки в стат массивах.
@ДмитрийШажко-к6к
@ДмитрийШажко-к6к Жыл бұрын
Понял, спасибо!@@selfedu_rus
@timmyturner3532
@timmyturner3532 4 ай бұрын
Я правильно понял, что в python'е статический массив - это кортеж? (Tuple)
@selfedu_rus
@selfedu_rus 4 ай бұрын
классических массивов как таковых нет, но ближе всего, да, кортеж
@poolwer
@poolwer Жыл бұрын
кароче, в Python реализация статического массива может быть через кортеж (tuple)
@selfedu_rus
@selfedu_rus Жыл бұрын
а как менять значения отдельных элементов, не создавая новый кортеж?
@firstandlast4435
@firstandlast4435 2 жыл бұрын
У меня появилось недопонимание. Если вставка элементов является таким затратным процессом. Не целесообразно ли тогда инициализировать все элементы массива условными нулями при создании? Или это будет то же самое что вставка элементов?
@selfedu_rus
@selfedu_rus 2 жыл бұрын
дело в том, что наперед неизвестно сколько вставлять, а значит, мы не знаем, сколько оставлять )
@firstandlast4435
@firstandlast4435 2 жыл бұрын
@@selfedu_rus ну я и имел в виду что мы гипотетически можем заполнить ВСЕ элементы массива каким то специальным значением, например нулями при создании массива, чтобы потом не тратить лишнее время на вставку и удаление элементов а просто менять значения по индексу, разве нет? Хотя при удалении элементов все равно будут проблемы если требовать непрерывности полезных данных.
@selfedu_rus
@selfedu_rus 2 жыл бұрын
@@firstandlast4435 тогда длина массива будет очень большой и в общем случае стремиться к бесконечности )
@ВасильМихальчук-ж7т
@ВасильМихальчук-ж7т Жыл бұрын
дуже якісно
@версиянедоступна
@версиянедоступна Жыл бұрын
Я правильно понимаю, что статический массив не относится к питону, это структура данных какого то другого языка?
@selfedu_rus
@selfedu_rus Жыл бұрын
в базовых типах Python нет статического массива
@MikeVVl
@MikeVVl 2 жыл бұрын
Спасибо за Ваш труд! Надеюсь, Вы не обидитесь на предложение? Мне не понравился переход от статического массива к вст./удал.из него (статического). Может, ИМХО, здесь подойдет (как иллюстрация) мех.работы со str в Python? Когда при люб.изм. содержания объекта происходит создание нового об. с копированием в него нового сод. Т.е. та же O(n). И наглядно и соответсвует в обе стороны. Не буду против, если Вы измените ролик и удалите моё сообщение. Вы делаете важное дело: я и мои дети проходим Ваши курсы и они из лучших в мире. А ошибки не совершают те, кто ничего не делают!
@nicholasspezza9449
@nicholasspezza9449 2 жыл бұрын
ахахах сколько ж неадекватов
@selfedu_rus
@selfedu_rus 2 жыл бұрын
Спасибо! Я только не совсем понял сравнение с str в Python. Как правильно вы сказали там создается новый объект при изменении. В статическом массиве этого нет, все изменения происходят в нем самом без создания нового объекта.
@MikeVVl
@MikeVVl 2 жыл бұрын
@@selfedu_rusСпасибо за отклик! Имел ввиду, что Вы изначально вводите стат.массив, как занимающий постоянное место в памяти и имеющий пост.длину. А при описании опер. append/insert неявно вводите, что массив занимает место в памяти больше, чем длина его содержимого. И используете этот концевой запас при описании. А в случае полного заполнения содержимым стат. массива все оп.будут проходить полным копированием в нов.об. Извините, если что;) - пишу с телефона. Поправки то методологические/вкусовые, ИМХО.:)
@selfedu_rus
@selfedu_rus 2 жыл бұрын
это вы уже говорите о динамических массивах, там работает именно так и об этом речь пойдет дальше по курсу, в статическом массиве размер (число элементов) не меняется на протяжении всей работы программы
@MikeVVl
@MikeVVl 2 жыл бұрын
@@selfedu_rus Поэтому и удивился, когда Вы стали разбирать оп. append/insert для стат.массивов. Хотя с пред-выделенными буферами для нуль-строк в С так и работают... В любом случае, Вы - автор. Хотел высказать сторонний взгляд в процессе создания нового курса лишь надеясь помочь в первичной шлифовке курса. Жду след.видео и удачи!
@youtubeyoutube6205
@youtubeyoutube6205 2 жыл бұрын
джи это g, j это джей 😁
@selfedu_rus
@selfedu_rus 2 жыл бұрын
жи 🙂
@mavendalzhidar3382
@mavendalzhidar3382 2 жыл бұрын
Это не так работает в python? В python невозможно в статический массив записывать. Только читать. И из него невозможно удалять или вставлять что либо. Срезом если только, но не по индексу как tuple[index]. И он меняет адрес в памяти я так понимаю при таких манипуляциях т.к заново размещает объекты в памяти? Тогда операция изменения объекта в статическом массиве - tuple в пайтоне будет O(n), не O(1). Но чтение O(1). А в динамическом массиве - list, запись O(1), но чтение O(n). Так верно я понимаю?
@selfedu_rus
@selfedu_rus 2 жыл бұрын
В Python нет полноценного статического массива. Так можно ответить )
@mavendalzhidar3382
@mavendalzhidar3382 2 жыл бұрын
@@selfedu_rus о спасибо за ответ) я учился по Лутцу и там в общих чертах рассказывалось. Пока в computer science глубоко не лезу думал как раз алгоритмы научиться решать для собесов и лучшего старта в нормальных компаниях. На галерах клепать говносайты и тд не охота.
FOREVER BUNNY
00:14
Natan por Aí
Рет қаралды 30 МЛН
風船をキャッチしろ!🎈 Balloon catch Challenges
00:57
はじめしゃちょー(hajime)
Рет қаралды 101 МЛН
Players vs Pitch 🤯
00:26
LE FOOT EN VIDÉO
Рет қаралды 137 МЛН
Хэш-таблицы за 10 минут
13:01
Николай Тузов — Golang
Рет қаралды 132 М.
How To Learn Algorithms? Why? #codonaft
19:22
codonaft
Рет қаралды 580 М.
6 важных структур данных
17:25
S0ER
Рет қаралды 92 М.
FOREVER BUNNY
00:14
Natan por Aí
Рет қаралды 30 МЛН