|
166 / 52 / 36
Регистрация: 13.04.2012
Сообщений: 620
|
||||||
Добавление сортировки03.04.2019, 21:50. Показов 3701. Ответов 98
Метки нет (Все метки)
не хватает процедуры сортировки имён в алфавитном порядке...
вот сама программа
0
|
||||||
| 03.04.2019, 21:50 | |
|
Ответы с готовыми решениями:
98
Разработайте рекурсивную процедуру сортировки последовательности методом быстрой сортировки Хоара Написать программу сортировки массива с помощью алгоритма внешней сортировки
|
|
166 / 52 / 36
Регистрация: 13.04.2012
Сообщений: 620
|
|
| 27.04.2019, 18:46 [ТС] | |
|
0
|
|
|
2356 / 1459 / 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
|
|
|
2356 / 1459 / 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
|
|
|
2356 / 1459 / 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
|
|
|
2356 / 1459 / 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
|
||
|
2356 / 1459 / 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
|
||||||
|
2356 / 1459 / 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
|
||||||||||||
|
2356 / 1459 / 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 | |
|
Добавление сортировки Добавление времени сортировки Добавление сортировки в готовый код
Добавление флага в алгоритм сортировки способом пузырька (С++) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Из невошедшего на форум (диалог с ИИ-гугла)
zorxor 29.07.2026
А вот, что интересно, сказал мне ИИ-гугла:
Этот текст — эмоциональный пост пользователя под ником zorxor на интернет-форуме (вероятно, посвященном мистике, непознанному или альтернативной науке). . . .
|
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет
Новости компьютерного мира и их обсуждение (4)
Салют, шампанское, овации!
:drink:
|
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр.
Дословно, отклонённая. . .
|
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы
Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
|
|
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
|
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2.
Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
|
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
|
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
|