Грокаем а Иллюстрированное пособие для программистов и любопытствующих



Download 3,16 Mb.
bet14/79
Sana19.02.2022
Hajmi3,16 Mb.
#457977
1   ...   10   11   12   13   14   15   16   17   ...   79
Bog'liq
Грокаем алгоритмы ( PDFDrive )

ЧТО НЕОБХОДИМО ЗНАТЬ
Чтобы понять ту часть этой главы, которая относится к анализу эф­фективности, необходимо понимать смысл понятия «О-большое» и логарифмов. Если вы совершенно не разбираетесь в этих вопросах, лучше вернуться и прочитать главу 1. «О-большое» будет использо­ваться в оставшихся главах книги.
Как работает память
П
редставьте, что вы пришли в театр и хотите оставить свои личные вещи в гардеробе. Для хранения вещей есть специальные ящики.
В
ГОСПОЛИН МОЖЕТ ИСПОЛЬЗОВАТЬ


ДВА ЯЩИКА, ВОТ ЭТИ ЯВА.
ПОЖАЛУЙСТА! 1


каждом ящике помещается один предмет. Вы хотите сдать на хранение две вещи, поэтому требуете выделить вам два ящика.
И
ЗОНТИК


ЗАЙЧИК
4


вы оставляете свои две вещи.
Готово, можно идти на спектакль!
В сущности, именно так работает память вашего компьютера. Она представ­ляет собой нечто вроде огромного шкафа с множеством ящиков, и у каждого ящика есть адрес.
А
ДРЕС: fe0ffeet
feOffeeb — адрес ячейки памяти.
Каждый раз, когда вы хотите сохранить в памяти отдельное значение, вы запрашиваете у компьютера место в памяти, а он выдает адрес для сохра­нения значения. Если же вам понадобится сохранить несколько элементов, это можно сделать двумя основными способами: воспользоваться масси­вом или списком. В следующем разделе мы обсудим массивы и списки, их достоинства и недостатки. Не существует единственно верного способа сохранения данных на все случаи жизни, поэтому вы должны знать, чем различаются разные способы.
Массивы и связанные списки
И
ногда в памяти требуется сохранить список эле­ментов. Предположим, вы пишете приложение для управления текущими делами. Описания задач должны храниться в виде списка в памяти.
Что использовать массив или связанный спи­сок? Для начала попробуем сохранить задачи в массиве, потому что этот способ более по­нятен. При использовании массива все задачи хранятся в памяти непрерывно (то есть рядом друг с другом).

а1ИС0К‘ ЭТУ ПАМЯТЬ
-П-ЕЛ ИСПОЛЬЗУЮТ ДРУГИЕ
*




ОБЕД

ТРЕНИ­
РОВКА

ЧАЙ







щ

Й|1







СВОБОДНАЯ^
ПАМЯТЬ
















Теперь предположим, что вы захотели добавить четвертую задачу. Но сле­дующий ящик уже занят — там лежат чужие вещи!



РАЗМЕСТИТЬ ЗДЕСЬ ЗАДАЧУ НЕЛЬЗЯ, МЕСТО У*Е ЗАНЯТО



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


Если вдруг придет еще один друг, места опять не хватит, и вам всем при­дется перемещаться снова! Сплошная суета. Кроме того, добавление новых элементов в массив станет серьезной проблемой. Если свободного места нет и вам каждый раз приходится перемещаться в новую область в памяти, операция добавления нового элемента будет выполняться очень медленно. Простейшее решение — «бронирование мест»: даже если список состоит всего из 3 задач, вы запрашиваете у компьютера место на 10 позиций... просто на всякий случай. Тогда в список можно будет добавить до 10 за­дач, и ничего перемещать не придется. Это неплохое обходное решение, но у него есть пара недостатков:

  • Лишнее место может не понадобиться, и тогда память будет расходо­ваться неэффективно. Вы ее не используете, однако никто другой ее использовать тоже не может.

  • Если в список будет добавлено более 10 задач, перемещаться все равно придется.

В общем, прием неплохой, но его нельзя назвать идеальным. Связанные списки решают проблему добавления новых элементов.
Связанные списки
П
ЭТУ память ИСПОЛЬЗУЮТ ДРУГИЕ



ри использовании связанного списка элементы могут размещаться где угодно в памяти.
В каждом элементе хранится адрес следующего элемента списка. Таким образом, набор произвольных адресов памяти объединяется в цепочку.

[об

ОБЕД
for

ш







П5

ш




ТРЕНИ­
РОВКА







^§т

ЧАЛ
122

[23

1



Download 3,16 Mb.

Do'stlaringiz bilan baham:
1   ...   10   11   12   13   14   15   16   17   ...   79




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish