Быстрая сортировка является одним из самых быстрых алгоритмов сортировки массивов. Скорость работы примерно равна O(n log n) операций при сортировке n элементов.
Читать дальше
Наверное, большинство программистов скажут, что первый алгоритм, с которым они познакомились, был алгоритм сортировки. Пузырьковую сортировку наверное во всех ВУЗ-ах по программированию приводят в качестве примера сортировки.
Поэтому я решил описать самые популярные алгоритмы сортировок.
Читать дальше
С момента последней статьи пришлось внести несколько оптимизаций, которые уменьшили время нахождения 100000-ного простого числа с 4,552 до 1,224 секунды. И эта разница с ростом чисел будет увеличиваться.
В обе функции я внес следующие оптимизации:
— поиск только по нечетным числам (так как кроме числа 2 больше нет четных простых чисел);
— находим корень числа для конечного диапазона не каждый раз в цикле, а только когда это необходимо;
— для проверки числа на простоту делим только на нечетные числа.
Читать дальше
Так как я люблю решать различные математические задачки (projecteuler.net, diofant.ru, ...), постоянно необходимо делать одни и те же действия. Поэтому я создал блог «Алгоритмы», в котором буду периодически писать функции для решения различных задач. Думаю, многим будет полезно.
Желающие также могут поделиться своими наработками. Ссылки на другие ресурсы бросать не нужно, кто захочет, сам найдет через поисковые системы. Я любитель С++, поэтому весь синтаксис будет на нем.
Моя специальность — программист. Профессия сложная и интересная. Первая проблема, которая встала передо мной — как можно из синтаксических команд слепить что-то полезное? Легко выучить синтаксис языка, сложнее научиться писать программы. Это все равно что научить человека писать и ждать что он начнет создавать стихи и романы. Поиск в интернете не принес сначала своих плодов, но я набрел на один IRC канал, где и нашел помощь. Меня ткнули носом в один ресурс, о котором я и хочу вам рассказать: Project Euler
На нем множество задач, которые помогают развивать логику и математические навыки. Именно с этого сайта я и начинал свой путь…
Читать дальше
Несколько переработал программу — изменения не то, чтобы принципиальные, но существенные.
1. Исправлен баг с бинарными библиотеками.
2. Кроме методов, теперь выводятся и константы (можно отключить).
3. Если включен показ protected и private методов, они выделяются серым фоном.
4. Атрибуты выделяются в отдельный список, методы показываются с заголовками (список параметров).
В планах:
1. Подумать-таки над кластеризацией…
2. «Шлифовать» код, сейчас местами он неизящен.
Исходник, README со всеми параметрами командной строки и немного примеров, как и прежде — на GitHub.
Очень непривычно почти без форматирования. Лучше дам ссылку на свою Blogger-запись.
Возникло у меня желание автоматом создавать граф иерархии классов и модулей Ruby в формате DOT для последующей обработки утилитами GraphViz. Вообще-то такая возможность есть в штатном автодокументаторе RDoc, но она меня не устроила.
Немного поковырялся и написал, благо Ruby поддерживает богатые возможности самоисследования.
По ссылке подробное описание.
Программисты тоже люди, и иногда они устают. А что хочется поделать, когда нет желания работать? Здесь каждый может написать то, что ему нравится. Но среди этого всего точно будет — поиграть! Так что предлагаю вашему вниманию игру для настоящих программистов — Core wars.
Читать дальше