Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?
23.01.2025, 20:41:48
Начало Помощь Поиск Войти Регистрация
Новости: ООО «Скрин маркет системз», правообладатель программы «Система брокерского обслуживания «TRANSAQ» официально заявляет, что не ведет никакой деятельности в мессенджерах или социальных сетях. 
Подробности на нашем сайте  WWW.TRANSAQ.RU.

Transaq  |  СБО "Transaq"  |  Подсистема ATF  |  Topic: работа с массивами « предыдущая тема следующая тема »
Страниц: [1] Печать
Автор Тема: работа с массивами  (Прочитано 3482 раз)
nikolz
Sr. Member
****
Сообщений: 285


Просмотр профиля Email
« : 16.03.2011, 09:42:46 »

Добрый день!
В программах часто использую при работе с массивом операцию unshift
Интересует время исполнения данного оператора.
Вопрос в следующем:
1) Поясните механизм реализации оператора.
Надеюсь , что он не реализуется смещением содержимого массива на элемент в памяти с последующей записью вставляемого.
Предполагаю,что но реализован через изменение индекса.
Если реализован через список, то просьба сообщить затраты памяти на один элемент массива.
2)Если возможно дайте оценку относительного быстродействия по сравнению с косвенной адресацией.
3) Зависит ли время исполнения операции  unshift от длины массива.
Например массив 10 элементов или массив 100 тысяч элементов.
Спасибо
Записан
Heller
Разработчики
Hero Member
*****
Сообщений: 1277


Просмотр профиля Email
« Ответ #1 : 16.03.2011, 12:24:43 »

Используется дек, и в зависимости от ситуации либо массив будет переписан полностью в заново выделенную область памяти, либо просто расширен.

На каждый элемент массива, если только это не строки, затрачивается всегда 8 байт.
Записан
Страниц: [1] Печать 
Transaq  |  СБО "Transaq"  |  Подсистема ATF  |  Topic: работа с массивами « предыдущая тема следующая тема »
Перейти в:  


Войти

Powered by MySQL Powered by PHP Powered by SMF 2.0.10 | SMF © 2006-2008, Simple Machines LLC Valid XHTML 1.0! Valid CSS!