Page 276 - Bkhargava_-_Grokaem_algoritmy
P. 276

Глава 2   275


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


        Глава 2


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


                                 1.  n РО..П.УКТЫ

                                 2. кино
                                 3. ЬЕЛОСИПЕ..а.НЫ~
                                     КЛУБ


             Ежедневно вы записываете все свои траты. В конце месяца вы анали­
             зируете расходы и вычисляете, сколько денег было потрачено. При
             работе с данными выполняется множество операций вставки и отно­
             сительно немного операций чтения. Какую структуру использовать -
             массив или список?

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

                                                         www.trk.kg
   271   272   273   274   275   276   277   278   279   280   281