Page 113 - Bkhargava_-_Grokaem_algoritmy
P. 113

112    Глава 5.  Хеш-таблицы


        Код выглядит так:


        voted  =  {}
        def  check_voter(name) :
          if voted.get(name):
            print  "kick  them  out!"
          else :
            voted[name]  =  True
            print  "let  them  vote!"

        Давайте .протестируем его на нескольких примерах:


        >»  check_voter("tom")
        let  them  vote!
        »>  check_voter("mike")
        let  them  vote!
        >>>  check_voter("mike")
        kick  them  out!

        Когда Том приходит на участок в первый раз ,  программа разрешает ему
        проголосовать. Потом приходит Майк, который тоже допускается к голосо­
        ванию. Но потом Майк делает вторую попытку, и на этот раз у него ничего
        не получается.
        Если бы имена проголосовавших хранились в списке, то выполнение
        функции со временем замедлилось бы, потому что функции пришлось
        бы  проводить простой поиск по всему списку. Но имена хранятся в хеш­
        таблице,  а хеш-таблица мгновенно сообщает, присутствует имя избирателя
        в списке или нет. Проверка дубликатов в хеш-таблице выполняется очень
        быстро.


        Использование хеш-таблицы как кэша

        Последний пример:  кэширование. Если вы ра­
        ботаете над созданием веб-сайтов, вероятно, вы
        уже слышали о пользе кэширования. Общая
        идея кэширования такова: допустим, вы захо­
        дите на сайт f acebook.com:
         1.  Вы обращаетесь с запросом к серверу Face-
            book.



                                                         www.trk.kg
   108   109   110   111   112   113   114   115   116   117   118