Алгоритмы. С примерами на Python
Қосымшада ыңғайлырақҚосымшаны жүктеуге арналған QRRuStore · Samsung Galaxy Store
Huawei AppGallery · Xiaomi GetApps

автордың кітабынан сөз тіркестері  Алгоритмы. С примерами на Python

Кисткин  Павел
Кисткин Павелдәйексөз келтірді1 жыл бұрын
http://github.com/heineman/LearningAlgorithms.
5 Ұнайды
Комментарий жазу
николай
николайдәйексөз келтірді7 ай бұрын
программах используются три свободно распространяемые библиотеки Python, которые необходимо скачать и установить самостоятельно2: • NumPy (https://www.numpy.org) версии 1.19.5; • SciPy (https://www.scipy.org) версии 1.6.0; • NetworkX (https://networkx.org) версии 2.5. NumPy и SciPy — одни из самых популярных свободных библиотек с огромным сообществом. Я их использую, чтобы измерить фактическую производительность алгоритмов. NetworkX — большой сборник эффективных алгоритмов для работы с графами,
2 Ұнайды
Комментарий жазу
Роман Г.
Роман Г.дәйексөз келтірді5 ай бұрын
Встроенные же функции, например max(), — часть самого интерпретатора: пока такая функция обрабатывает объект, не нужно ничего дополнительно интерпретировать. Поэтому встроенные функции всегда быстрее тех, что написаны на Python8. Следует заметить, что во всех случаях реализация одного и того же алгоритма должна приводить к одинаковому изменению быстродействия при изменении размера данных — например, при удвоении N время работы и largest(), и max() тоже удваивается как в наихудшем, так и в наилучшем случае.
1 Ұнайды
Комментарий жазу
coffeecritics
coffeecriticsдәйексөз келтірді3 апта бұрын
Алгоритм нахождения медианы в неупорядоченном списке за линейное время
Комментарий жазу
coffeecritics
coffeecriticsдәйексөз келтірді3 апта бұрын
Довольно медленные функции — определители палиндрома
Комментарий жазу
Камиль Тишибаев
Камиль Тишибаевдәйексөз келтірді1 ай бұрын
Пример 1.3. Другой способ найти наибольшее значение в списке A def alternate(A): for v in A: ❶ for x in A: if v < x: ❷ break else: return v ❸ return None ❹ ❶ Для каждого v из A рассмотрим все x из A и сравним их. ❷ Если v меньше какого-то x, можно больше не сравнивать: это не максимум. ❸ Если мы просмотрели все x, так ни разу и не выполнив break, значит, v — это максимум и его можно уже возвращать. ❹ До этого места выполнение дойдет только при пустом A. В таком случае вернем специальный объект Python — None.
Комментарий жазу
Камиль Тишибаев
Камиль Тишибаевдәйексөз келтірді1 ай бұрын
Пример 1.2. Правильная функция, которая находит наибольшее значение в списке def largest(A): my_max = A[0] ❶ for idx in range(1, len(A)): ❷ if my_max < A[idx]: my_max = A[idx] ❸ return my_max ❶ Сделаем my_max равным начальному элементу списка (он доступен по индексу 0). ❷ Переменная idx принимает целочисленные значения от 1 до len(A)-1 включительно, не достигая len(A). ❸ Если в A по индексу idx стоит большее значение, обновить my_max.
Комментарий жазу
Камиль Тишибаев
Камиль Тишибаевдәйексөз келтірді1 ай бұрын
Если x больше, чем y, можно задать убывающую последовательность от x до y, не включая y, с помощью range(x,y,–1). Если сделать список из range(1,7), list(range(1,7)) даст [1,2,3,4,5,6]. Соответственно, list(range(5,0,–1)) даст [5,4,3,2,1], а если дополнительно задать шаг — приращение последовательности — list(range(1,10,2)) даст [1,3,5,7,9]: разность между соседними элементами будет равна 2.
Комментарий жазу
Камиль Тишибаев
Камиль Тишибаевдәйексөз келтірді1 ай бұрын
работает flawed() Эта реализация алгоритма содержит ошибку: предполагается, что в A есть хотя бы одно неотрицательное число. Вызов flawed([–5,–3,–11]) вернет 0, что неправильно. Часто вместо нуля пытаются использовать «наименьшее возможное число», примерно так: my_max = float('-inf'). Этот подход также небезупречен, потому что для пустого списка A = [] он вернет -inf, которого там не было. Недочет надо исправить.
Комментарий жазу
Камиль Тишибаев
Камиль Тишибаевдәйексөз келтірді1 ай бұрын
NumPy (https://www.numpy.org) версии 1.19.5; • SciPy (https://www.scipy.org) версии 1.6.0; • NetworkX (https://networkx.org) версии 2.5. NumPy и SciPy — одни из самых популярных свободных библиотек с огромным сообществом. Я их использую, чтобы измерить фактическую производительность алгоритмов. NetworkX — большой сборник эффективных алгоритмов для работы с графами, он нам понадобится в главе 7; там же есть удобная готовая структура данных, реализующая граф. Средства этих библиотек позволят не изобретать очередное колесо, если в этом нет нужды. Если они не установлены, не беда: примеры написаны так, что смогут работать и без них, нужные функции также есть в репозитории.
Комментарий жазу