Silex
unitecsys
Частота повторяющихся элементов в массиве
Появилась необходимость сделать статистику по частоте задаваемых слов в системе поиска, чтобы, скажем, показать админу десятку самых популярных. Пока что дошел до того, чтобы свалить все из базы в строку, затем рассовать все слова по элементам массива и... банально в цикле сравнивать поэлементно с остальными, увеличивая счетчик для каждого слова и затирая совпавшие слова, чтобы их заново не сравнивать. Сложность - меньше n*n, т.е. число итераций будет равно количеству уникальных слов плюс проверка на "затертость".
Пока не реализовывал, хотелось бы услышать мнение по поводу быстродействия на 10-15 тысячах слов. Может, кто другое что-нибудь предложит? Еще мысль была сначала все это отсортировать, но так еще дольше по идее...
Появилась необходимость сделать статистику по частоте задаваемых слов в системе поиска, чтобы, скажем, показать админу десятку самых популярных. Пока что дошел до того, чтобы свалить все из базы в строку, затем рассовать все слова по элементам массива и... банально в цикле сравнивать поэлементно с остальными, увеличивая счетчик для каждого слова и затирая совпавшие слова, чтобы их заново не сравнивать. Сложность - меньше n*n, т.е. число итераций будет равно количеству уникальных слов плюс проверка на "затертость".
Пока не реализовывал, хотелось бы услышать мнение по поводу быстродействия на 10-15 тысячах слов. Может, кто другое что-нибудь предложит? Еще мысль была сначала все это отсортировать, но так еще дольше по идее...