Entry tags:
Давненько не брал я в руки шашек!
Лёгким движением руки ускорил чужой код на питоне примерно в 60 раз ;)))
В общем, типическое "Кто так пишет..." :)))
Было:Стало:
rows = [] cols = [] for key in values.keys(): row, col = key if not col in cols: cols.append(col) if not row in rows: rows.append(row) n_rows = max(rows) n_cols = max(cols)
n_rows = 0 n_cols = 0 for key in values.keys(): row, col = key if row > n_rows: n_rows = row if col > n_cols: n_cols = col
В общем, типическое "Кто так пишет..." :)))
no subject
no subject
no subject
no subject
no subject
Вот, например, зачем в исходном варианте первый цикл, я ваще не понимаю. Это люди про zip() не знают, наверное. (Впрочем, алгоритмически лучше код от этого становится ненамного).
Кстати, можно и ещё сэкономить на построении (длинных) списков, пользуясь iterkeys().
no subject
no subject
:)))
no subject
пару раз я видела - и даже пыталась модифицировать программы, в которых код такой, что поневоле начинаешь задумываться о смысле жизни :)
no subject
Для достаточно больших чисел - весьма долго.
Хотя, в действительности, достаточно проверить остаток от деления на 2, он же - младший бит :)))
no subject
no subject
no subject
(Anonymous) 2007-06-23 10:51 am (UTC)(link)И так далее до 12. Автор про массивы, похоже, не слышал.
no subject
(Anonymous) 2007-06-23 10:41 am (UTC)(link)Может, сразу, ввести определение, что все числа, после некого, чётные?
Иначе пользователь алгоримта удавится ждать результата.
no subject
Дык, в этом-то и вся прелесть :)
no subject
Речь, всё же, идёт о числах меньше maxint :)