|
1 / 1 / 0
Регистрация: 07.01.2015
Сообщений: 48
|
||||||
Оптимизировать программу, которая рассчитывает повторение каждой буквы и сочетания из двух букв05.02.2015, 06:56. Показов 1313. Ответов 16
Метки нет (Все метки)
Посоветуйте, как можно существенно оптимизировать код. Программа рассчитывает повторение каждой буквы и сочетания из двух букв (для расчета энтропии в дальнейшем) текста из textBox1 по нажатию кнопки. Результат записывается в textBox2 и в файлы. При подсчете использую одномерный и двумерный массивы, индексы которых и есть символы, а их значения - число повторений.
Программа получилась недопустимо тормознутой - с текстом из 3500 слов работает в течении 10 сек (на поточный вывод в файл времени тратится немного), в ОП занимает 11476 К, что слишком много. Оптимизация в настройках включена, режим Release.
Ошибся, не 3500 слов, а 3500 символов. Редактировать перенесенные темы нельзя?
0
|
||||||
| 05.02.2015, 06:56 | |
|
Ответы с готовыми решениями:
16
Написать программу, которая рассчитывает значение Z Составьте программу, которая рассчитывает количество бактерий |
|
|
||||||
| 05.02.2015, 09:49 | ||||||
|
Миллион символов.
Время 0.29 сек. Без особой оптимизации.
1
|
||||||
|
1 / 1 / 0
Регистрация: 07.01.2015
Сообщений: 48
|
|
| 05.02.2015, 11:13 [ТС] | |
|
Storm23, я работал с компонентами textBox, а Ваш вариант вообще консольный. Поэтому, естественно, времени меньше.
Как только ознакомлюсь с Dictionary, попробую его использовать. Но мне кажется, много времени уходит на взаимодействие как раз с TextBox, поэтому ощутимо быстрей не будет. Может, кусками считывать из textBox и записывать в какой-нибудь буфер, и обрабатывать эти куски?
0
|
|
|
|
|||
| 05.02.2015, 11:16 | |||
|
А в моем примере мне просто было лень вставлять строку в текстбокс, что бы тут же ее оттуда забирать. На скорость обработки это никак не влияет.
1
|
|||
|
1 / 1 / 0
Регистрация: 07.01.2015
Сообщений: 48
|
||
| 05.02.2015, 11:47 [ТС] | ||
|
Storm23,
Добавлено через 11 минут Избавление от лишних пространств имен никак не повлияло на занимаемую память
0
|
||
|
|
||
| 05.02.2015, 12:03 | ||
|
1
|
||
|
1 / 1 / 0
Регистрация: 07.01.2015
Сообщений: 48
|
|
| 05.02.2015, 14:20 [ТС] | |
|
0
|
|
|
|
||
| 05.02.2015, 14:52 | ||
|
0
|
||
|
1 / 1 / 0
Регистрация: 07.01.2015
Сообщений: 48
|
||
| 06.02.2015, 18:49 [ТС] | ||
|
0
|
||
|
|
|||||||
| 06.02.2015, 19:09 | |||||||
|
Если вам нужно перебрать все пары ключ-значение из словаря, то используйте foreach:
0
|
|||||||
|
1 / 1 / 0
Регистрация: 07.01.2015
Сообщений: 48
|
|
| 07.02.2015, 05:21 [ТС] | |
|
Но ведь во время отладки видно, что пара ключ-значение индексируются.
0
|
|
|
1 / 1 / 0
Регистрация: 07.01.2015
Сообщений: 48
|
|
| 07.02.2015, 05:22 [ТС] | |
|
В любом случае, как определенное значение ключа вывести в textBox?
0
|
|
|
1 / 1 / 0
Регистрация: 07.01.2015
Сообщений: 48
|
||||||
| 07.02.2015, 17:42 [ТС] | ||||||
|
Storm23, а какой-нибудь метод для сортировки dictionary по ключам есть?
Добавлено через 2 минуты И еще хотел спросить, вот это для чего:
0
|
||||||
|
|
|||||||
| 07.02.2015, 18:00 | |||||||
|
Если вам нужен отсортированный словарь ключ-значение, можно использовать SortedDictionary. Однако эта структура данных имеет время поиска и вставки O(log n), в то время как Dictionary имеет O(1). То есть в процессе поиска сочетаний нежелательно использовать SortedDictionary, потому что оно существенно медленнее. Но если на выходе вам все же нужен упорядоченный словарь, то вам нужно при поиске использовать словарь, а затем создать сортированный сорварь из исходного:
1
|
|||||||
|
1 / 1 / 0
Регистрация: 07.01.2015
Сообщений: 48
|
|
| 08.02.2015, 06:29 [ТС] | |
|
Заменил "textBox2.Text=textBox2.Text+... " на "textBox2.AppendText(...)" в своем первоначальном варианте, и это ускорило выполнение раза в 4. Но все еще недостаточно быстро.
0
|
|
| 08.02.2015, 06:29 | |
|
Помогаю со студенческими работами здесь
17
Написать программу, которая рассчитывает 10-й член последовательности Составить программу, которая рассчитывает значение этой функции : Написать программу, которая рассчитывает плату за расход воды
Написать программу, которая в заданном слове, состоящем из строчных букв, определяет состовляющие его буквы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога
SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
|
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net
REST сервисы временно не работают, только через Web.
Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
|