Архив рубрики 'Technologies/Algorithms'

Морфология фамилий

Суббота, Июль 17, 2010

Рейтинг персон Сочи обновлен с учетом морфологии некоторых фамилий и редких имён. Для этого к словарю русского языка для ispell от Александра Лебедева были сделаны следующие дополнения:

Обставляя двоичный поиск

Понедельник, Июль 5, 2010

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

Коллекция RuSSIR

Суббота, Март 13, 2010

Создал на Mendeley коллекцию RuSSIR, присоединяйтесь.

Исправленная быстрая strncpy

Понедельник, Февраль 8, 2010

В еще более быстрой версии функции strncpy был существенный недостаток, – она не полностью соответствовала спецификации, а именно, не дополняла нулями, если строка-источник оказывалась короче указанной длины. Вариант ниже исправляет этот недостаток, но по-прежнему быстрее стандартной функции будучи скомпилированным с включенной оптимизацией кода для современных процессоров:

Клоакинг vs Согласование содержимого

Воскресенье, Январь 24, 2010

Сергей Петренко, директор Яндекс-Украина, в своем блоге путает два понятия в одно. Изначально, в более узком смысле, Согласование содержимого (Content negotiation) – это механизм, заложенный в протокол HTTP, позволяющий показывать по одному URL контент, наиболее удобным способом отображаемый конретным агентом для конкретного пользователя. В частности, речь идет о выборе языка документа и его вида (MIME [...]

О MurmurHash

Пятница, Январь 8, 2010

Более быстрая версия MurmurHash 2.0, не чувствительная к порядку записи байтов целого: #include<stdio.h> #include <netinet/in.h> #define mmix(h,k) { k *= m; k ^= k >> r; k *= m; h *= m; h ^= k; } unsigned int MurmurHash2B ( const void * key, int len, unsigned int seed ) { const unsigned int m [...]

Еще более быстрая memcpy

Воскресенье, Декабрь 20, 2009

Еще более быстрый вариант функции memcpy а-ля Duff’s device и используя конвеер (предыдущий вариант). Результаты сравнения времени выполнения теста, сравнивающего новый и старый варианты и стандартную библиотечную реализацию на невыровненных данных: test0: FreeBSD memcpy in C 2.7686 test1: <new dps_memcpy> 0.43485 test2: <old dps_memcpy> 2.50218 test3: <standard memcpy> 0.456584 ratio(1/2): 0.17 ratio(1/0): 0.16 ratio(2/0): 0.90 [...]

Еще более быстрая strncpy

Среда, Декабрь 9, 2009

Еще более быстрый вариант функции strncpy а-ля Duff’s device (предыдущий вариант). Результаты сравнения времени выполнения теста, сравнивающего новый и старый вариант ы и стандартную библиотечную реализацию: test1: <new dps_strncpy> 3.00593 test2: <old dps_strncpy> 3.39416 test3: <standard strncpy> 5.06081 ratio(1/2): 0.89 ratio(1/3): 0.59 ratio(2/3): 0.67

Duff’s device bubblesort

Четверг, Октябрь 29, 2009

В продолжение пузырьков, кэшей и предсказателей переходов вариант пузырьковой сортировки а-ля Duff’s device:

Page Speed

Воскресенье, Июнь 7, 2009

Google выпустил тулзу для веб-мастеров Page Speed, аналогичную YSlow от Yahoo (точнее разработчик, точнее один из, но руководитель группы, Стив Саудерс (Steve Souders) теперь работает в Google). Page Speed реализована в виде плагина к Файрфоксу. Дает гораздо больше советов, чем YSlow, по оптимизации веб-страницы, которая анализируется. Рекомендуется веб-мастерам, даже если они больше любят Яндекс – [...]