Рубрика: optimisation

WordCount в Sublime

Sub­lime чудесен. Можно сказать, что проблема отсутствия под lin­ux-ом Notepad++ успешно решена. Правда был вопрос – насколько можно его использовать для написания всяких текстов. А чтобы в программе писали тексты, она должна уметь подсчитывать символы. Соответствующий плагин нашёлся сразу, но он не умел посчитывать количество символов. Решил допилить, а заодно разобраться, что у этих плагинчиков…

Прочитать статью целиком

C++: Счастливый билет с длинной арифметикой

Счастливый трамвайный билет — это такой, у которого сумма первых трёх цифр номера равна сумме трёх последних. При встрече его полагается съесть. Сколько таких билетов всего? Какова вероятность встретить счастливый? Алгоритм для этих вычислений в Википедии настолько ужасен, что народ с Хабра довольно быстро породил в комментариях огромное количество вариантов на C++, Perl и… SQL.…

Прочитать статью целиком

JavaScript: Случайные элементы массива

Родилось из C#-овой, но на JavaScript наглядней. Нужно выбрать из массива N случайных элементов. Как это сделать быстро? Если длина массива <= N — это очевидно. А если нет? Сначала склонируем массив: Object.prototype.clone = func­tion() { var newObj = (this instance­of Array) ? [] : {}; for (i in this) { if (i == ‘clone’)…

Прочитать статью целиком

JavaScript: быстрые циклы

length в JavaScript — штука медленная. Это очень хорошо видно по скорости выполнения циклов. Вовремя заменив for на while, можно получить выигрыш в производительности в 7 раз. В умелых руках циклы JavaScript прекрасно заменяют друг друга. А значит, есть повод дополнить старый постинг о среднем арифметическом. var digitRegEx=/^-?d+([,.]d+)?$/g; func­tion arith­meticMean() { var len = arguments.length,…

Прочитать статью целиком

JavaScript: быстрый парсинг числа

Как вы думаете, как быстрее парсить число с плавающей точкой — вот так: func­tion isNumber(n) { if (n == null) return null; var num_parsed = parseFloat(n); return (!isNaN(num_parsed) && isFinite(n)) ? true : false; } Или так (reg­Exp немного исправлен по сравнению с примером с суммой, чтобы уважить сербов): var digitRegEx=/^-?d+([,.](d+)?)?$/g; func­tion isNumberRegExp(n) { return…

Прочитать статью целиком