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



Download 3,16 Mb.
bet75/79
Sana19.02.2022
Hajmi3,16 Mb.
#457977
1   ...   71   72   73   74   75   76   77   78   79
Bog'liq
Грокаем алгоритмы ( PDFDrive )

Ответ: 0(log п)

  1. Известен номер, нужно найти фамилию в телефонной книге. (Под­сказка: вам придется провести поиск по всей книге!)

Ответ: 0(п).

  1. Нужно прочитать номера всех людей в телефонной книге.

Ответ'. 0(п). .

  1. Нужно прочитать телефоны всех людей, фамилии которых начинают­ся с буквы «А». (Вопрос с подвохом! В нем задействованы концепции, которые более подробно рассматриваются в главе 4. Прочитайте от­вет скорее всего, он вас удивит!)

Ответ-. 0(п). Возможно, кто-то подумает: «Я делаю это только для одной из 26 букв, а значит, время выполнения должно быть равно 0(п/26).» Запомните простое правило: в «О-большое» игнорируются числа, задействованные в операциях сложения, вычитания, умно­жения или деления. Ни одно из следующих значений не является правильной записью «О-болыиое»: 0(п + 26), 0(п - 26), 0(п * 26), 0(п/26). Все они эквивалентны 0(п)\ Почему? Если вам интересно, найдите раздел «Снова об “О-большом”» в главе 4 и прочитайте о кон­стантах в этой записи (константа — это просто число; в этом вопросе 26 является константой).
Глава 2

  1. Допустим, вы строите приложение для управления финансами.

ПРОДУКТЫ

  1. КИНО

  2. ЬЕАОСИПЕДНЫЙ КЛУБ

Ежедневно вы записываете все свои траты. В конце месяца вы анали­зируете расходы и вычисляете, сколько денег было потрачено. При работе с данными выполняется множество операций вставки и отно­сительно немного операций чтения. Какую структуру использовать массив или список?
Ответ: В данном случае траты добавляются в список ежедневно, а чтение всех данных происходит один раз в месяц. Для массивов характерно быстрое чтение и медленная вставка, а для связанных списков медленное чтение и быстрая вставка. Гак как вставка будет выполняться намного чаще, чем чтение, есть смысл воспользоваться связанным списком. Кроме того, чтение в связанных списках происхо­дит медленно только при обращении к случайным элементам списка. Так как читаться будут все элементы списка, связанный список также неплохо справится с чтением. Итак, связанный список станет хорошим решением этой задачи.

  1. Допустим, вы пишете приложение для приема заказов от посетителей ресторана. Приложение должно хранить список заказов. Официанты добавляют заказы в список, а повара читают заказы из списка и вы­полняют их. Заказы образуют очередь: официанты добавляют заказы в конец очереди, а повар берет первый заказ из очереди и начинает готовить.


Какую структуру данных вы бы использовали для реализации этой оче­реди — массив или связанный список? (Подсказка: связанные списки хорошо подходят для вставки/удаления, а массивы — для произволь­ного доступа к элементам. Что из этого понадобится в данном случае?)


Ответ: Связанный список. Вставка происходит очень часто (офици­анты добавляют заказы), а связанные списки эффективно выполняют эту операцию. Ни поиск, ни произвольный доступ (сильные стороны массивов) вам не понадобятся, потому что повар всегда извлекает из очереди первый заказ.

  1. Проведем мысленный эксперимент. Допустим, Facebook хранит список имен пользователей. Когда кто-то пытается зайти на сайт Facebook, система пытается найти имя пользователя. Если имя входит в список имен зарегистрированных пользователей, то вход разреша­ется. Пользователи приходят на Facebook достаточно часто, поэтому поиск по списку имен пользователей будет выполняться часто. Будем считать, что Facebook использует бинарный поиск для поиска в спи­ске. Бинарному поиску необходим произвольный доступ алгоритм должен мгновенно обратиться к среднему элементу текущей части списка. Зная это обстоятельство, как бы вы реализовали список поль­зователей — в виде массива или связанного списка?

Ответ-. В виде отсортированного массива. Массивы обеспечивают произвольный доступ вы можете мгновенно получить элемент из середины массива. Со связанными списками это невозможно. Чтобы получить элемент из середины связанного списка, вам придется начать с первого элемента и переходить по ссылкам до нужного элемента.

  1. Пользователи также довольно часто создают новые учетные записи на Facebook. Предположим, вы решили использовать массив для хране­ния списка пользователей. Какими недостатками обладает массив для выполнения вставки? Допустим, вы используете бинарный поиск для нахождения учетных данных. Что произойдет при добавлении новых пользователей в массив?

Ответ: Вставка в массив выполняется медленно. Кроме того, если вы используете бинарный поиск для нахождения имен пользователей, массив необходимо отсортировать. Предположим, пользователь по имени Adit В регистрируется на Facebook. Его имя будет вставлено в конец массива. Следовательно, массив нужно будет сортировать при каждой вставке нового имени!

  1. В
    ADIT*


    506’


    ‘BETH’


    >) “UT" | ^“CODY”



    Download 3,16 Mb.

    Do'stlaringiz bilan baham:
1   ...   71   72   73   74   75   76   77   78   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