- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
def accordance_score( required, estimated ):
q = 0.5
scan_length = max( len(required), len(estimated) )
result = 0.0
i = 0
j = 0
while (i < len(estimated)) and (j < len(required)):
if estimated[i].upper() == required[j].upper():
result += q ** x
j += 1
i += 1
return result / ( (q ** scan_length - 1) / (q - 1) )
Код, конечно, не айс: смысл туманен, простор для оптимизации велик, но не так чтобы уж полное Г
Возможно автор поста так делал, и человек просто не согласен с тем что его код говно по сравнению с приведенным автором поста.
Вот отсутствие комментариев - в таком случае, да, наверное говнокод.
len() - операция O(1)
> что автор кода хотел найти все вхождения одной строки или символа в другой строке или списке
автор кода вычисляет меру "похожести" строк, что отражено в названии функции
У слова accordance есть такое множество значений... я про такое использование и не слышал никогда. А если бы нужно было похожесть строк искать, использовал бы Левиншейна.
И все равно это не отменяет того, что у len() нету какой-то одной сложности. Она определяется конкретным типом объекта к которому применяется.
len - операция расширяемая, можно определить у любого объекта метод __len__ и делить в нём на ноль или осуществлять доступ к базе данных. У всех же встроенных питоньих контейнеров len() отрабатывает за O(1).
Видно, что алгоритмов полно, а автор начинает свой кривой велосипед пилить.
"Подскажите статью на хабре, которая на реферат похожа." ≡ "Подскажите фильм, в котором Джонни Депп в шляпе".
глава 3
Если код нельзя понять без комментариев - это уже говнокод.
впервые вижу человека, который не слышал про сишкоинкремент
Тонко. Но питон тоже не слышал.
Стараниями некоторых граждан два креста в последнее время стали ассоциироваться с зашкваром.
В питоне оператор ++ бажный, вот и брезгует.
++i - исполняется, но не работает.
i++ - работает, но не исполняется.