|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
03.07.2011, 18:49 | #1 |
Пользователь
Регистрация: 03.07.2011
Сообщений: 92
|
Работа с текстом в C++
Доброго всем времени суток!!!
Очень нужна помощь с программой. Задание: распечатать слова текста, отсортированные в порядке убывания частоты их встречаемости (рядом с каждым словом выводить значение счетчика частоты его вхождения в текст). Программу писала для текста из 3х слов, в каждом по 3 буквы. Использовала структуры. Меня 2 месяца не будет, прогу надо сдать в начале сентября!!! Буду бесконечно благодарна. Код:
|
03.07.2011, 19:15 | #2 |
Пользователь
Регистрация: 01.11.2010
Сообщений: 75
|
а в чем, собственно, проблема?)
|
04.07.2011, 12:15 | #3 | ||
Пользователь
Регистрация: 26.06.2011
Сообщений: 85
|
Вот программа, при файле содержащем
Цитата:
Цитата:
Производительность (как я думаю) будет ужасной, но оно вполне работает. С удовольствием послушаю, как её можно оптимизировать. Код:
Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете. (c) Martin Golding
|
||
04.07.2011, 13:55 | #4 |
Старожил
Регистрация: 19.08.2009
Сообщений: 2,119
|
No_Comments
Очень нужна помощь с программой. Задание: распечатать слова текста, отсортированные в порядке убывания частоты их встречаемости (рядом с каждым словом выводить значение счетчика частоты его вхождения в текст). Программу писала для текста из 3х слов, в каждом по 3 буквы. Использовала структуры. Меня 2 месяца не будет, прогу надо сдать в начале сентября!!! Хе-хе. стратегия, надо признать, весьма недурственная. Пока ты будешь прохлаждаться в отпуске, ботаны тебе решают задачки ((((: Ну да ладно, ботаны сегодня добрые, вот т нечего делать набросалось... Код:
А вы почему со мной не соглашаетесь, у вас что, импотенция? (c) ACE Valery
|
04.07.2011, 14:08 | #5 |
Software Developer
Участник клуба
Регистрация: 01.03.2011
Сообщений: 1,098
|
Код:
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Помог ответ? -- Поставьте отзыв. Выражения особой благодарности в рублевом эквиваленте отправлять сюда --> R269634919062 |
04.07.2011, 16:33 | #6 | |
Пользователь
Регистрация: 26.06.2011
Сообщений: 85
|
Цитата:
Я и не подозревал, что Код:
Код:
Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете. (c) Martin Golding
|
|
04.07.2011, 16:48 | #7 |
Старожил
Регистрация: 19.08.2009
Сообщений: 2,119
|
Nedward
с использованием современных техник C++ это можно упростить даже до: typedef std::istream_iterator<std::string> I; std::for_each(I(text), I(), ++ref(results)[arg1]);
А вы почему со мной не соглашаетесь, у вас что, импотенция? (c) ACE Valery
|
04.07.2011, 18:41 | #8 |
Пользователь
Регистрация: 26.06.2011
Сообщений: 85
|
Не могу утверждать наверняка (не проводил тесты), но мне кажется что нашел более быстрое решение
Код:
Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете. (c) Martin Golding
|
05.07.2011, 11:08 | #9 | |
Software Developer
Участник клуба
Регистрация: 01.03.2011
Сообщений: 1,098
|
Цитата:
Время примерно одинаковое. В диапазоне от 1838 до 1988 и от 1843 до 1994 микросекунд соответственно (для файла размером в 1000 строк). Так что оба варианта вполне взаимозаменяемы -)
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Помог ответ? -- Поставьте отзыв. Выражения особой благодарности в рублевом эквиваленте отправлять сюда --> R269634919062 |
|
05.07.2011, 12:57 | #10 | |||
Пользователь
Регистрация: 26.06.2011
Сообщений: 85
|
Цитата:
По результатам исследований выяснилось, что: 1) Я не имею представления, как проводить тесты достаточно быстрых алгоритмов (проверял функцией clock(), но до сих пор не знаю, что за значения она возвращает). Как Вы замеряли время в микросекундах? 2) Один из самых больших txt файлов на моем компьютере - роман барона Олшеври - ВАМПИРЫ. 3) Самое узкое место этих программ - вывод результатов 4) У барона большой словарный запас. 5) Новый алгоритм выигрывает, но он выигрывает копейки, результаты 10 измерений (если не учитывать время вывода на экран, конечно): Цитата:
Цитата:
Это (если не ошибаюсь) 4,5% прирост скорости Вообще странные результаты, я ожидал прироста скорости раза в 2 минимум. Ведь в первом варианте для каждого элемента ищется свое место, в то время как во втором сортируется уже готовый массив. Приму к сведению - использовать массив map для сортировки можно даже в критичных по скорости выполнения программах - на результат сильно не повлияет. P.S. только сейчас пришло в голову - нужно было измерять время выполнения только измененного куска кода, а не всего алгоритма. Наверняка большую часть времени занимает чтение данных из файла. Позже, наверное, попробую - интересная тема получилась
Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете. (c) Martin Golding
|
|||
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Работа с текстом | dimon_home | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 05.06.2009 13:17 |
работа с текстом... | Poll | Помощь студентам | 5 | 23.01.2009 11:43 |
работа с текстом в си++ | Sjava | Помощь студентам | 3 | 21.12.2008 11:54 |
Работа с текстом | vinimixer | Общие вопросы Delphi | 0 | 07.11.2008 21:19 |
Работа с текстом.[C] | DropYourWeapon | Общие вопросы C/C++ | 3 | 15.10.2008 21:55 |