2015-03-13 3 views
-1

У меня есть список из 200 000 слов, каждый из которых содержит около 10 числовых функций. 200 000 слов разделяются на 500 кусков размером по некоторым заголовкам (например, «Глава x»). Я хочу написать сценарий, который ничего не делает, кроме приглашения пользователя ввести строку, а затем находит эту строку среди 200 000 слов (слово может быть в нескольких фрагментах, но в каждом фрагменте оно будет найдено только один раз) и возвращает имена главы, в которой строка сортируется по значению числового элемента этого слова в каждой главе. Например, предположим, что слово «двенадцать» появляется в трех главах, и я хочу сортировать его по признаку 1, который имеет значения 50, 30, 2 в главах 10, 14 и 9 соответственно. Я хочу, о/р:Извлечь слово из главы

Chapter 10, 50 
Chapter 14, 30 
Chapter 9, 2 

Прежде, чем я даже начать писать сценарий, я хочу, чтобы убедиться, что это разумная задача для Python. Другими словами, будет ли время выполнения в секундах, в минутах? Если бы у меня вместо этого было 500 000 слов, было бы все же возможно? Я не хочу, чтобы пользователь ждал.

+1

Кажется разумным. Я думаю, что если вы сделаете это правильно, оно должно быть в порядке меньше секунды. –

ответ

2

время Баллпарк:

Допустим, все ваши слова 10 8-разрядные символы строки (так, 80 бит каждый), и вам необходимо сравнить строку ввода для всех 200000 из них. Это около 16 миллионов операций сравнения бит. Если ваш процессор работает с кодом 1 ГГц, вы закончите через 0,016 секунды.

Даже если я недооценил количество операций, которые эта задача займет 100 раз, для выполнения потребуется всего 1 секунда.

Смежные вопросы