Поиск по сайту:
Настоящее горе стыдливо (Ф. Геббель).

Лучший способ изучить Python (пошаговое руководство 2020 года). Часть 5

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (2 оценок, среднее: 5,00 из 5)
Загрузка...
25.04.2020
Как установить Python 3 на Ubuntu 16.04 LTS

Уровень 4. Структуры данных и алгоритмы в Python

Если вы достигли этого уровня, похлопайте себя по плечу.

Потому что к настоящему времени у вас есть навыки, которые позволяют вам решать самые разнообразные проблемы.

Однако чего-то не хватает.

Вы все еще недостаточно опытны в написании эффективного кода.

Что мы имеем в виду?

Например, вы не знаете, как изменить свой код, чтобы он работал быстрее. Вы даже не можете проанализировать, почему это медленно в первую очередь.

Это нормально.

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

Не верите нам? Посмотрите на этот простой код, который вычисляет n-е число Фибоначчи.

def fib(n):
    if n < 2:
        return n
    return fib(n-2) + fib(n-1)

print(fib(100))

 

Код выглядит достаточно простым и очень простым, верно?

Попробуйте использовать этот код для вычисления  fib (100)

 

[gn_box title=»ПРЕДУПРЕЖДЕНИЕ» box_color=»#ffa68c» title_color=»#000000″][Это займет очень много времени][/gn_box]

 

Теперь давайте сделаем простую модификацию кода.

def fib(n, d):
    if n < 2:
        return n
    if n not in d:
        d[n] = fib(n-2, d) + fib(n-1, d)
    return d[n]

print(fib(100, {}))

 

На этот раз все это заняло несколько миллисекунд, и вы получите ответ — 354224848179261915075 на тот случай, если вам интересно.

Читать  Сортировка списка в Python

Мы использовали то, что называется динамическим программированием, чтобы решить эту проблему и заставить ее работать астрономически быстрее.

Что ж, мы надеемся, что вы уже убедились, что вам следует изучить структуры данных и алгоритмы.

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

Вам нужно будет узнать о связанных списках, деревьях, стеках, очередях, графиках, хеш-таблицах, рекурсии, динамическом программировании, алгоритмах поиска и сортировки и т.д.

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

Мы действительно это имели в виду!

 

Начало:

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Если статья понравилась, то поделитесь ей в социальных сетях:

Читайте также


Deprecated: Функция WP_Query вызвана с аргументом, который считается устаревшим с версии 3.1.0! Параметр caller_get_posts считается устаревшим. Используйте ignore_sticky_posts. in /var/www/andreyex/data/www/andreyex.ru/wp-includes/functions.php on line 6085

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

**ссылки nofollow

Рекомендуемое
В этой статье для начинающих вы узнаете о команде ulimit…

Спасибо!

Теперь редакторы в курсе.