|
166 / 52 / 36
Регистрация: 13.04.2012
Сообщений: 620
|
||||||
Добавление сортировки03.04.2019, 21:50. Показов 3875. Ответов 98
Метки нет (Все метки)
не хватает процедуры сортировки имён в алфавитном порядке...
вот сама программа
0
|
||||||
| 03.04.2019, 21:50 | |
|
Ответы с готовыми решениями:
98
Разработайте рекурсивную процедуру сортировки последовательности методом быстрой сортировки Хоара Написать программу сортировки массива с помощью алгоритма внешней сортировки
|
|
166 / 52 / 36
Регистрация: 13.04.2012
Сообщений: 620
|
|
| 27.04.2019, 18:46 [ТС] | |
|
0
|
|
|
2357 / 1460 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
|
|
| 27.04.2019, 22:03 | |
|
Нет, Thread это потоки, а реализовано это в HashSet и Dictionary.
0
|
|
|
166 / 52 / 36
Регистрация: 13.04.2012
Сообщений: 620
|
|
| 27.04.2019, 22:16 [ТС] | |
|
0
|
|
|
2357 / 1460 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
|
||||||
| 27.04.2019, 22:45 | ||||||
|
Объяснение основных моментов:
Я расскажу про HashSet, потому что Dictionary работает по тем же принципам, только ещё сопоставляет с каждым ключём - значение. И начну я с теории: В HashSet хранится массив бакетов (в переводе с англ. - вёдер). Каждый бакет - это массив элементов, у хеш-кодов которых - последние несколько бит одинаковые. На этом теория закончилась ;) Теперь, допустим имеется такой код:
integer.GetHashCode возвращает само число, поэтому с ним проще объяснить.Число переданное в конструктор - это кол-во бакетов. Вообще, его сначала увеличивает до ближайшей степени двойки. Но я уже передал степень двойки (8=2^3), поэтому его не изменит. А 9, к примеру, заменило бы на 16. 5 в 2-ичной СС выглядит как 101. 8 это 2^3, поэтому у 5 возьмёт последние 3 бита, по сути не изменив её. Готовое число - это номер бакета, то есть 5 засунет в бакет #5 Дальше идёт 8, которое в 2-ичной СС выглядит как 1000. Когда у него берёт последние 3 бита - получается 0, то есть его засунет в бакет #0 (они нумеруются с 0). Дальше 13, в 2СС 1101. От него берёт последние 3 бита и получается 5. То есть его тоже засунет в бакет #5. Вы могли заметить - когда у n берут последние 3 бита, результат выходит n mod 8. Это действительно так, но побитовые маски работают быстрее чем mod, поэтому используют именно их.Дальше у нас проверка .Contains. Именно тут и творится магия, ради которой создавались все эти бакеты. Без бакетов - пришлось бы проверить все 3 добавленных числа на равенство тринадцати. Но теперь, вместо этого - опять производится та операция над хеш-кодом. Берётся последние 3 бита, получаем номер бакета, снова #5. И теперь проверяем только в бакете #5.В данном случае это 2 проверки, но в обычной ситуации - это маловероятно. Обычно, элементы более равномерно расползаются по бакетам, и тогда проверка вообще только 1, вне зависимости от того - сколько всего элементов в хашсете. Но, кроме всего прочего, равномерность расположения элементов - может зависеть от выбранной функции GetHashCode. Когда дело заходит про нахождение хеш-кода записи, содержащей 3 integer - обычно математически находят специальные "волшебные" числа, которые при проведении специальных операций - дают самый хороший хеш-код. Но это уже гуглите сами. Но, не думайте что я объяснил всё. Я ужасно упростил, чтоб можно было изложить человеческим языком, а не тем что вы находили до этого. А так - и в HashSet, и в Dictionary полно дополнительных плюшек. Но, теперь, имея базовую информацию - вам должно быть легче понять сухой текст, и вот теперь его пора читать. И напоследок - я оставлю вам во вложениях сорсы HashSet и Dictionary. (в Desktop.rar) Но, лучше будет если вы их достанете сами, я, к примеру, использовал DotPeek. Ато, он ещё подсвечивает всё, и с ним удобно искать информацию в большой файле с кодом (там куча полезных действий под ПКМ).
1
|
||||||
|
166 / 52 / 36
Регистрация: 13.04.2012
Сообщений: 620
|
|
| 27.04.2019, 22:50 [ТС] | |
|
а что-за .cs файлы? чем их открыть?
0
|
|
|
2357 / 1460 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
|
|
| 27.04.2019, 22:53 | |
|
Это исходный код на C#. Открываются - любым текстовым редактором. Но как я и сказал, лучше открыть чем то вроде DotPeek-а, так вам легче будет в них разобраться.
0
|
|
|
166 / 52 / 36
Регистрация: 13.04.2012
Сообщений: 620
|
|
| 27.04.2019, 23:38 [ТС] | |
|
0
|
|
|
2357 / 1460 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
|
|
| 27.04.2019, 23:43 | |
|
Содержимое процедур и функции выглядит практически строчка - в строчку с паскалем (по крайней мере если писать в .Net стиле в паскале, вместо того говнокода что у вас обычно).
Но, я в вас верю, вы не раз доказывали что у вас мозги на достаточном уровне, чтоб в подобном разобраться)) И - я таким образом C# вообще изучил, декомпилируя программы написанные на паскале (DotPeek всегда переводит IL в C# при декомпиляции). Для багребортов время от времени надо было. Хотя хз можно ли сказать изучил, раз отличие от паскаля только в объявлении типов и их методов. А там изучать нечего.
0
|
|
|
166 / 52 / 36
Регистрация: 13.04.2012
Сообщений: 620
|
||
| 27.04.2019, 23:59 [ТС] | ||
|
Добавлено через 1 минуту О, а abc паскаль открыл
0
|
||
|
2357 / 1460 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
|
|||||||
| 28.04.2019, 00:03 | |||||||
|
Или, лучше, сделайте .pas файл, такой:
Затем, киньте полученный .exe в DotPeek, откройте декомпилированный файл основной программы, зажмите Ctrl и тыкните на HashSet или Dictionary. Вот я именно так получил исходники которые кинул вам.
0
|
|||||||
|
166 / 52 / 36
Регистрация: 13.04.2012
Сообщений: 620
|
|
| 28.04.2019, 16:58 [ТС] | |
|
получается если у меня список слов, то мне надо каждое слово списка перевести в числовой вид через 'Val' процедуру, а полученные значения записать в массив... потом эти числа из массива обработать по определённой формуле, и занести их в хэш-таблицу? или так же при вводе каждого слова сделать перевод в числовой вид через 'Val', и сразу же полученное значение обработать по формуле и записать в хэш-таблицу?
Добавлено через 35 секунд пока у меня только такая идея, и я не знаю правильно это или нет... Добавлено через 21 минуту чё-то не то Добавлено через 1 минуту в паскале можно вообще слово из букв перевести в цифровое значение? Добавлено через 2 минуты код каждой буквы слова сложить, и вывести их сумму например Добавлено через 5 минут или можно сразу взять введённое слово и пустить его по формуле?
0
|
|
|
257 / 149 / 70
Регистрация: 29.07.2018
Сообщений: 1,254
|
|
| 28.04.2019, 17:01 | |
|
0
|
|
|
166 / 52 / 36
Регистрация: 13.04.2012
Сообщений: 620
|
||||||
| 28.04.2019, 17:11 [ТС] | ||||||
|
Ошибка времени выполнения: Входная строка имела неверный формат.
0
|
||||||
|
2357 / 1460 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
|
|||||
| 28.04.2019, 18:33 | |||||
i := s.ToInteger;ololo111, а вы вообще можете и HashSet использовать, вместо создания велосипедов. Добавлено через 13 минут Но вы правильно придумали:
0
|
|||||
|
166 / 52 / 36
Регистрация: 13.04.2012
Сообщений: 620
|
||||||||||||
| 28.04.2019, 20:21 [ТС] | ||||||||||||
|
Добавлено через 21 минуту получается мне надо взять отдельно каждый символ введённого имени, перевести его в код символа, можно и сложить, и потом по этой формуле из экселя =(A1*0,61-ЦЕЛОЕ(A1*0,61))*100 перевести в хэш-таблицу.... только мне досихпор про хэш не ясно, это как отдельный список с зашифрованными данными идёт? или как массив Добавлено через 19 минут
4321 как-то так? Добавлено через 17 минут
56 О, теперь по моей формуле кодирует, как и требовал препод, хэш из 2х значного целого числа Добавлено через 2 минуты только у меня результат с каждым именем перезаписывается и не заносится в хэш таблицу, да? Добавлено через 57 минут ладно, хватит на сегодня, а то уже голова болит....
0
|
||||||||||||
|
2357 / 1460 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
|
|||
| 28.04.2019, 20:29 | |||
|
1
|
|||
|
257 / 149 / 70
Регистрация: 29.07.2018
Сообщений: 1,254
|
|||||||
| 28.04.2019, 21:00 | |||||||
|
ololo111,
Например:
1
|
|||||||
|
166 / 52 / 36
Регистрация: 13.04.2012
Сообщений: 620
|
|
| 28.04.2019, 23:32 [ТС] | |
|
0
|
|
|
257 / 149 / 70
Регистрация: 29.07.2018
Сообщений: 1,254
|
|
| 29.04.2019, 07:10 | |
|
ololo111, Да
0
|
|
|
166 / 52 / 36
Регистрация: 13.04.2012
Сообщений: 620
|
|
| 29.04.2019, 19:55 [ТС] | |
|
ребят, а как саму хэш-таблицу создавать? просто делать обычный массив, и заносить в него все коды хэша?
0
|
|
| 29.04.2019, 19:55 | |
|
Добавление сортировки Добавление времени сортировки Добавление сортировки в готовый код
Добавление флага в алгоритм сортировки способом пузырька (С++) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|