Хеш таблица (Hash Table) - Структуры данных C#

  Рет қаралды 20,821

CODE BLOG

CODE BLOG

5 жыл бұрын

Хеш таблица C# hashtable C# - Структуры данных на языке программирования C#
На этом занятии мы рассмотрим такую структура данных как Хеш таблица (Hash Table). Это специальная структура данных, которая позволяет хранить информацию в виде пар ключ-значение. Наиболее близко к ней понятие ассоциативного массива. Основное преимущество хеш таблицы - выполнение операций вставки, поиска и удаления за O(1).
Подписывайтесь на информационные каналы курса, чтобы ничего не пропустить и не потерять информацию:
Закрытый чат для участников курса: vk.cc/8Ev4Gv
Рассылка с оповещениями в ВК: vk.cc/86Y7Pa
Подписывайтесь на мои социальные сети, там много всего интересного и полезного:
codeblog
tele.click/codeblog
zen.yandex.ru/codeblog
Поддержать канал: www.donationalerts.ru/r/shwanoff
Кстати, меня зовут Шванов Вадим, и я программист на языке C# уже больше 8 лет, а также я являюсь автором ресурсов для разработчиков CODE BLOG. На этом канале я рассказывают про IT, технологии и веду курс C# с нуля под названием Учим Шарп. В его рамках мы рассматриваем язык программирования c# с нуля, синтаксис, структуры данных, алгоритмы, паттерны проектирования и многое другое. Эти уроки c sharp подойдут для начинающих и для тех кто хочет подробнее изучить платформу .net и среду разработки visual studio. Для меня важно не только показать практическое применение языка си шарп и платформы dotnet, но и объяснить базовые идеи программирования. Уроки с# выходят как минимум два раза в неделю в понедельник и четверг в 20-00. C# курс рассчитан на то, чтобы изучить программирование с нуля. Все занятия веду я сам - опытный программист c#. Разработка ведется в IDE visual studio c#. Подписывайтесь, впереди еще много интересного и полезного об it, программировании как для начинающих, так и для более опытных программистов c#.
Объект хеш таблица c# hashtable c# состоит из контейнеров, содержащих элементы коллекции. Контейнер - это виртуальная подгруппа элементов внутри объекта Hashtable, которая обеспечивает более простой и быстрый поиск и извлечение, чем в большинстве коллекций. Каждый контейнер связан с хэш-кодом, который создается с помощью хэш-функции и основан на ключе элемента.
Подробный курс по языку программирования C#:
• Преимущества и недоста...
Подробный курс по структурам данных на языке программирования C#:
• Связный список (linked...
Подробный курс по алгоритмам сортировки на языке C#:
• Сортировка пузырьком (...
Разговоры о программировании, мотивации, и ответы на IT вопросы:
• Практика программирова...
#программирование #программист #csharp #ityoutubersru #codeblog

Пікірлер: 44
@CODEBLOG
@CODEBLOG 5 жыл бұрын
Хеш таблица C# hashtable C# - Структуры данных на языке программирования C# На этом занятии мы рассмотрим такую структура данных как Хеш таблица (Hash Table). Это специальная структура данных, которая позволяет хранить информацию в виде пар ключ-значение. Наиболее близко к ней понятие ассоциативного массива. Основное преимущество хеш таблицы - выполнение операций вставки, поиска и удаления за O(1). Объект хеш таблица c# hashtable c# состоит из контейнеров, содержащих элементы коллекции. Контейнер - это виртуальная подгруппа элементов внутри объекта Hashtable, которая обеспечивает более простой и быстрый поиск и извлечение, чем в большинстве коллекций. Каждый контейнер связан с хэш-кодом, который создается с помощью хэш-функции и основан на ключе элемента. Кстати, меня зовут Шванов Вадим, и я программист на языке C# уже больше 8 лет, а также я являюсь автором ресурсов для разработчиков CODE BLOG. На этом канале я рассказывают про IT, технологии и веду курс C# с нуля под названием Учим Шарп. В его рамках мы рассматриваем язык программирования c# с нуля, синтаксис, структуры данных, алгоритмы, паттерны проектирования и многое другое. Эти уроки c sharp подойдут для начинающих и для тех кто хочет подробнее изучить платформу .net и среду разработки visual studio. Для меня важно не только показать практическое применение языка си шарп и платформы dotnet, но и объяснить базовые идеи программирования. Уроки с# выходят как минимум два раза в неделю в понедельник и четверг в 20-00. C# курс рассчитан на то, чтобы изучить программирование с нуля. Все занятия веду я сам - опытный программист c#. Разработка ведется в IDE visual studio c#. Подписывайтесь, впереди еще много интересного и полезного об it, программировании как для начинающих, так и для более опытных программистов c#.
@user-nv4yz5bt4g
@user-nv4yz5bt4g 4 жыл бұрын
Спасибо за интересный урок - это моя первая хеш таблица !
@user-qw9pv3lw3r
@user-qw9pv3lw3r 4 ай бұрын
не описать эмоции))
@user-ey8tv3pf7r
@user-ey8tv3pf7r Жыл бұрын
Спасибо за ваш труд, мне помогло понять что такое хеш и как его реализовывать в C#, ваш вклад бесценен
@user-ls2ms5qc8h
@user-ls2ms5qc8h 4 жыл бұрын
Спасибо вам большое,доходчиво и понятно, пошагово ,с комментариями и на русском,просто находка)
@Valentin-zx8wr
@Valentin-zx8wr 4 жыл бұрын
О, и ты тут
@user-ls2ms5qc8h
@user-ls2ms5qc8h 4 жыл бұрын
@@Valentin-zx8wr ахаха, салам
@ivanomelchenko1895
@ivanomelchenko1895 3 жыл бұрын
спасибо за уроки +++
@user-dw2gk7cg9j
@user-dw2gk7cg9j 3 жыл бұрын
Просто лучший
@sergeydoomskiy9239
@sergeydoomskiy9239 2 жыл бұрын
Вопрос про получения хеша, есть класс содержащий массив строк: длина до 10 символов. Переопределяем GetHashCode длину строки + (первый символ*10)+(последний*100). Если мы будет вызывать GetHashCode каждый раз во время поиска то получается довольно затратно по ресурсам, выходит нужно заранее выполнил эти операции и занести хеши в отдельную таблицу? Или я неправильно понял метод генерации хеша?
@ivanomelchenko1895
@ivanomelchenko1895 2 жыл бұрын
спасибо за стримм
@artemlyubivoy3277
@artemlyubivoy3277 4 жыл бұрын
Спасибо за видео. Только я вот чего не понял в строке: item.ToString().Length % items.Length; запись % items.Length нужна для того, что бы не было выхода за границы массива. Каким образом эта запись не даст выйти за границы массива?
@CODEBLOG
@CODEBLOG 4 жыл бұрын
% это остаток от деления. то есть, когда у тебя есть 53%10 результатом будет 3. Результат никогда не может быть больше чем правый аргумент
@friendlyguy7813
@friendlyguy7813 4 жыл бұрын
Такой вопрос. На собеседовании на джуна, спрашивают только теорию или могут попросить реализовать все в коде? Имею ввиду структуры данных
@CODEBLOG
@CODEBLOG 4 жыл бұрын
Вполне возможно попросят реализовать простую структуру вроде стека
@bekapochitev8144
@bekapochitev8144 3 жыл бұрын
Вадим вернись!!! Без тебя никак, почему нет новых видео)))))
@bekapochitev8144
@bekapochitev8144 3 жыл бұрын
Можешь сделать туториал про Git)) Заранее спасибо)
@tonikkk25
@tonikkk25 4 жыл бұрын
Спасибо. Но остаётся один вопрос. Почему независимые хэш-генераторы генерируют некое число X одинаково? Они все работают по одному и тому же алгоритму? Раз хэш уникален, значит у него в шифре есть некоторое рандомное число, соль и тому подобное? На разных сайтах выдаётся один и тот же хэш по, например числу 1. Почему хэш-генераторы выдают одно и тоже?
@user-nv4yz5bt4g
@user-nv4yz5bt4g Ай бұрын
Пытался создать переводчик - программу объясняющие термины . Вместо Хеш коллекции я использовал коллекцию List состоящую из двухполярных структур . Если термин по имени находится в name1, то открывается поле name2 - перевод термина этого члена коллекции . Проблема как создать метод аккуратно записывающего коллекцию в бинарный файл , чтобы потом другой метод прочитал файл и правильно загрузил коллекцию из файла . Может покажите ролик как загрузить массив или коллекцию из файла .
@AShahabov
@AShahabov 4 жыл бұрын
Когда в самом начале приводился пример на слове «Книга», то мне показалось, что у этого значения берется первая буква «К», которая есть ключ теперь и уже вычисляем хэш этой буквы «К». В данном примере говорились про все компоненты: ключ, значение, хэш. На 20:00 минуте же приводиться пример со словом «Привет» и я что-то совсем запутался. Мы определили, что хэшем для этого значения есть «П». То есть, есть значение: Привет, есть хэш: П, а что есть ключ?
@CODEBLOG
@CODEBLOG 4 жыл бұрын
Это зависит от хеш-функции. Если мы не делаем ничего - это тоже в какой-то степени хеш-функция )))
@dGDeika
@dGDeika 3 жыл бұрын
Объясните ,пожалуйста, кто понимает. Функция GetHash возвращает остаток от деления длины строки на размерность массива. В этом случае функция хеширует данные через длину строки. Но могла бы хешировать через сумму цифр числа (как было в примере с числом 123, которое записывалось в 6 ячейку из -за того, что сумма цифр 1+2+3=6) ?????
@amwrag
@amwrag 5 жыл бұрын
Передавать и хранить Key внутри класса Item для последней реализации судя по коду необходимости нет, он нигде потом не используется.
@CODEBLOG
@CODEBLOG 5 жыл бұрын
по-разному. обычно ключ нужен для быстрого поиска именно по нему. это как идентификатор в бд
@flametheproducer1036
@flametheproducer1036 4 жыл бұрын
Подскажите как вывести в данном случае таблицу на кансоль
@CODEBLOG
@CODEBLOG 4 жыл бұрын
Реализовать метод вывода :) а в чем именно сложность? читай данные и выводи )
@user-xw1by8yo9e
@user-xw1by8yo9e 4 жыл бұрын
Надеюсь, на собеседовании джунов не просят реализовывать эти таблицы, множества и т.д. Знаешь об этом что-нибудь Вадим? Списки и очередь смогу реализовать, но с таблицами и множествами у меня проблемы(
@lewonderfulgeorgian3335
@lewonderfulgeorgian3335 3 жыл бұрын
5:03 Давайте расмотрим бытовой пример: вы хотите создать библиотеку. Эх, уже 3 дня как новую библиотеку не создаю
@pashavarava186
@pashavarava186 4 жыл бұрын
1:14:20 - что делает данная хеш функция?
@CODEBLOG
@CODEBLOG 4 жыл бұрын
Берет первый символ от ключа и преобразует в число (у каждой буквы есть свой числовой код, вот его и получаем)
@proit6623
@proit6623 3 жыл бұрын
Я правильно понимаю, когда переопределили GetHash то фактически уже метод возвращает не адрес в памяти, а то что мы переопределили? при объявлении var person = new Person () {Age =27, Gender = 1, Name = "Polina"} добавлении в таблицу: superHashTable.Add(person); superHashTable.Add(new Person () {Age =27, Gender = 1, Name = "Polina"}); при проверке: Control.WriteLine(superHashTable.Search(person)); --- true Control.WriteLine(superHashTable.Search(new Person () {Age =27, Gender = 1, Name = "Polina"})); -- false как проверяет Contains на наличие объекта в коллекции? в отладке показывает что в создаваемую таблицу добавление 2ух полин происходит, но при проверке выдает false
@user-mn8yu4sx2h
@user-mn8yu4sx2h 3 жыл бұрын
Супер подача! только музыка немного мешает, это не поделки из картона, что бы был какой-то муз. фон=)
@user-nv4yz5bt4g
@user-nv4yz5bt4g 4 жыл бұрын
Код ваших программ-примеров очень трудно переписать с роликов . Код мелкий , регионы закрыты , код могут перекрываться другими окнами . Вы пустите медленно пустите камеру с большим разрешением сверху вниз можно это делать в конце ролика или после каждого большого изменения .
@user-nv4yz5bt4g
@user-nv4yz5bt4g 4 жыл бұрын
Вы наверно этот ролик недавно изменили ?
@IGANTERI
@IGANTERI 3 жыл бұрын
Топовый урок когда по итогу даже не запустил программу и не показал как должно все это выглядеть, в чем смысл теории когда на практике 0
@rhseo4249
@rhseo4249 4 жыл бұрын
Рок Музыка на фоне, сильно мешает
@CODEBLOG
@CODEBLOG 4 жыл бұрын
сейчас я ее делаю тише )
@chichikov777
@chichikov777 4 жыл бұрын
Самое сложное в твоих видео - это отвлечение постоянно от темы, остановки, чтение комментов. Спасибо конечно за видосы, но блин не отвлекайся!!!! запиши просто урок без остановок, будет в сто раз лучше.
@user-ii9xe4pu6x
@user-ii9xe4pu6x 3 жыл бұрын
Как-то уж долго и нудно. Надо делать видео намного короче и делать меньше пауз. Короче, речь должна заранее продумана и подготовлена.
Indian sharing by Secret Vlog #shorts
00:13
Secret Vlog
Рет қаралды 56 МЛН
Be kind🤝
00:22
ISSEI / いっせい
Рет қаралды 20 МЛН
Omega Boy Past 3 #funny #viral #comedy
00:22
CRAZY GREAPA
Рет қаралды 33 МЛН
100❤️
00:19
Nonomen ノノメン
Рет қаралды 38 МЛН
Learn Hash Tables in 13 minutes #️⃣
13:26
Bro Code
Рет қаралды 309 М.
Хэш-таблицы за 10 минут
13:01
Николай Тузов — Golang
Рет қаралды 119 М.
Асинхронное программирование на C# (блок 1)
1:01:53
Просто программист
Рет қаралды 4,9 М.
Thread → Task. Многопоточность и Асинхронность
13:39
Архитектор ПО. Александр Желнин
Рет қаралды 26 М.
Indian sharing by Secret Vlog #shorts
00:13
Secret Vlog
Рет қаралды 56 МЛН