Как стать автором
Поиск
Написать публикацию
Обновить
0
@equivalence1read⁠-⁠only

Пользователь

Отправить сообщение

Я написал самую быструю хеш-таблицу

Время на прочтение29 мин
Количество просмотров72K

image


В конце концов я должен был к этому прийти. Когда-то я опубликовал статью «Я написал быструю хеш-таблицу», а потом ещё одну — «Я написал ещё более быструю хеш-таблицу». Теперь я завершил работу над самой быстрой хеш-таблицей. И под этим я подразумеваю, что реализовал самый быстрый поиск по сравнению со всеми хеш-таблицами, какие мне только удалось найти. При этом операции вставки и удаления также работают очень быстро (хотя и не быстрее конкурентов).


Я использовал хеширование по алгоритму Robin Hood с ограничением максимального количества наборов. Если элемент должен быть на расстоянии больше Х позиций от своей идеальной позиции, то увеличиваем таблицу и надеемся, что в этом случае каждый элемент сможет быть ближе к своей желаемой позиции. Похоже, такой подход действительно хорошо работает. Величина Х может быть относительно невелика, что позволяет реализовать некоторые оптимизации внутреннего цикла поиска по хеш-таблице.


Если вы хотите только попробовать её в работе, то можете скачать отсюда. Либо пролистайте вниз до раздела «Исходный код и использование». Хотите подробностей — читайте дальше.

Читать дальше →

VIM: зачем, если есть IDE, и как?

Время на прочтение4 мин
Количество просмотров131K

Сегодня вышел текст о том, как человек перешёл с Sublime на VIM. В комментариях, как обычно это бывает, появились сообщения в духе "Зачем мне тратить время на Vim, если есть IDE, где всё работает?" (люди даже статьи на эти темы пишут). Хотел внести свои пять копеек, но объём написанного плавно перевёл текст из разряда "комментарий" в разряд небольшой статьи.


В целом, всё, что ниже — это вкусовщина, конечно. Нравится вам ваша IDE (или ваш текущий инструмент), да и пожалуйста. Используйте для текущих задач то, чем вы владеете лучше всего, это аксиома эффективной работы. Но если у вас вдруг появилось немного времени на повышение вашей эффективности в целом, то попробую вас заинтересовать именно Vim'ом, сравнивая его с некой обобщенной IDE.


Узнать зачем и как начать

Microsoft провела две патентные атаки на Linux за неделю

Время на прочтение5 мин
Количество просмотров41K


На прошлой неделе многие СМИ писали о чудесных инициативах Microsoft в области открытого программного обеспечения — анонсе SQL Server под Linux, выпуске ОС для сетевых устройств на базе Debian (на самом деле это повтор старых новостей), вступлении в Eclipse Foundation.

Случайно или нет, но эти события затмили собой и оставили без внимания другие инициативы Microsoft, которые совсем не выглядят такими очаровательными. Это соглашение с Acer на предустановку программ Microsoft под угрозой патентного иска, а также попытка запатентовать технологию, которая уже реализована в Ubuntu. «Microsoft любит Linux настолько сильно, что задушит до смерти патентыми исками, в то время как медиа не обращают внимания, а вместо этого рассказывают, что Microsoft теперь "дружит" с GNU/Linux», — комментирует ситуацию TechRights.
Читать дальше →

Началось изготовление ключевых компонентов ITER

Время на прочтение3 мин
Количество просмотров122K

Термоядерный реактор ITER — маленькая копия Солнца

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

Одни из самых крупных компонентов термоядерного реактора делает подрядчик CNIM. Он занимался судостроением, прежде чем переключился на точное машиностроение. Расположение завода в Ла-Сейн-сюр-Мер в пригороде Тулона (Франция) на побережье является преимуществом, потому что некоторые из компонентов настолько громоздки, что их можно транспортировать только морем.
Читать дальше →

Бесплатные книги

Время на прочтение3 мин
Количество просмотров60K
Несколько книг по разным темам, которые находятся в открытом доступе.

Основы программирования
Читать дальше →

Возможно ли создать сильный искусственный интеллект, не копируя человеческий мозг?

Время на прочтение6 мин
Количество просмотров89K
Электронные мозги Необходимым условием наступления технологической сингулярности является создание «сильного искусственного интеллекта» (artificial superintelligence, ASI), способного самостоятельно модифицировать себя. Важно понимать, должен ли этот ИИ работать как человеческий разум, или хотя бы его платформа быть сконструированной аналогично мозгу?

Мозг животного (включая человека) и компьютер работают по-разному. Мозг является трехмерной сетью, «заточенной» под параллельную обработку огромных массивов данных, в то время как нынешние компьютеры обрабатывают информацию линейно, хотя и в миллионы раз быстрее, чем мозги. Микропроцессоры могут выполнять потрясающие расчеты со скоростью и эффективностью, значительно превышающими возможности человеческого мозга, но они используют совершенно другие подходы к обработке информации. Зато традиционные процессоры не очень хорошо справляются с параллельной обработкой больших объемов данных, которая необходима для решения сложных многофакторных задач или, например, распознавания образов.
Так может, не стоит одно тянуть к другому?

Декодирование JPEG для чайников

Время на прочтение9 мин
Количество просмотров283K

[FF D8]


Вам когда-нибудь хотелось узнать как устроен jpg-файл? Сейчас разберемся! Прогревайте ваш любимый компилятор и hex-редактор, будем декодировать это:


Jpeg file in hex editor


Специально взял рисунок поменьше. Это знакомый, но сильно пережатый favicon Гугла: Google favicon


Последующее описание упрощено, и приведенная информация не полная, но зато потом будет легко понять спецификацию.


Даже не зная, как происходит кодирование, мы уже можем кое-что извлечь из файла.


[FF D8] — маркер начала. Он всегда находится в начале всех jpg-файлов.


Следом идут байты [FF FE]. Это маркер, означающий начало секции с комментарием. Следующие 2 байта [00 04] — длина секции (включая эти 2 байта). Значит в следующих двух [3A 29] — сам комментарий. Это коды символов ":" и ")", т.е. обычного смайлика. Вы можете увидеть его в первой строке правой части hex-редактора.

Читать дальше →

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность