Очередь с приоритетом | Кольцевая очередь | Динамические структуры данных #6

Поділитися
Вставка
  • Опубліковано 24 вер 2024
  • Cамый лучший способ сказать "спасибо" - поставить лайк и и поделиться уроком с друзьями. Это очень мотивирует создавать полезные уроки =)
    Очередь как структура данных. Прошлый урок.
    goo.gl/ojk1Y3
    ✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅
    Если вам нравятся мои уроки, вы хотите поддержать меня и развитие канала, то можете сделать это тут!=)
    🔴🔴🔴 www.donationale...
    или тут
    🔴🔴🔴 / simplecode
    ✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅
    Уроки по программированию
    Наша группа ВК smplcode
    Подписывайтесь на канал / @simplecodeit

КОМЕНТАРІ • 64

  • @SimpleCodeIT
    @SimpleCodeIT  6 років тому +28

    *Cамый лучший способ сказать "спасибо" - поставить лайк и и поделиться уроком с друзьями. Это очень мотивирует создавать полезные уроки =)*

    • @maksimshekhunov4079
      @maksimshekhunov4079 6 років тому

      Наверное уже поздно задавать вопросы по этой теме, но всё же:
      Ты говорил, что нельзя работать с данными внутри очереди, однако тут ты демонстрируешь, как просто берёшь и исключаешь данные из середины очереди, вставляешь туда новые данные. Я не понял этого момента, можешь объяснить?

    • @konstantinsavenkov353
      @konstantinsavenkov353 6 років тому

      Макс Шехунов возможно имелось ввиду, что сами данные (узлы) лучше не менять, а очередь модифицировать можно. Кстати, почему всё-таки узлы нельзя менять для меня вопрос. Например, если список хранит информацию о процессе и какой-то процесс завершает работу в отведенное ему время, но задачу он не решил, то информация о процессе сохраняется в узел. Вот и происходит модификация, ведь мы старые данные о процессе перезаписываем новыми. А потом этот процесс опять отправляется на выполнение, но теперь он полностью завершает работу и просит ОС завершить данный процесс. И одно из действий по завершению процесса будет удаление его из данной очереди выполняющихся процессов. Вот и модификация самой очереди. Может быть он оговорился, что нельзя модифицировать очередь?

  • @SimpleCodeIT
    @SimpleCodeIT  6 років тому +13

    #очередьсприоритетом #кольцеваяочередь #SimpleCode #урокипрограммирования

    • @alexeygrigorev4317
      @alexeygrigorev4317 6 років тому +1

      Пробел после шарпа убери, а то хештег не засчитает, миллиарды зрителей и не узнают о тебе))

  • @veter4699
    @veter4699 6 років тому +15

    СПАСИБО ЗА ТРУД!!! ♥♥♥

  • @slimbdeful
    @slimbdeful 6 років тому +22

    Понятно и наглядно - как обычно. Спасибо за урок, Сергей. Очень хотелось бы послушать и посмотреть о dll. Что как и откуда.

  • @vladimirpirogov1336
    @vladimirpirogov1336 2 роки тому +1

    Сергей, спасибо Вам за Ваши уроки, досматриваю плейлист "на одном дыхании"! Но позволю себе немного отрицательной обратной связи. В предыдущем видео Вы рассказали, что очередь строится на основе двусвязного списка потому что используются достоинства последнего и "не выстреливают" недостатки. А в этом, внезапно, говорите про упорядочивание элементов в очереди, т.е. двусвязном списке. После просмотра не сформировалось целостной картины. Предполагаю, что решается несколькими очередями (на иллюстрации одна). С уважением!

  • @KurpatovInstagram
    @KurpatovInstagram 6 років тому +8

    Спасибо!

  • @NikolayForostiy
    @NikolayForostiy 5 років тому +6

    Вообще интересно какая реализация очереди с приоритетом наиболее трудоспособная. Я думаю о N-нарном дереве с кольцевой очередью, для каждого приоритета.

  • @MadRedMarx
    @MadRedMarx 4 роки тому +5

    Очередь с приоритетом с предварительной сортировкой, конечно же, лучше, т.к. быстрее. При этом начинать поиск последнего элемента с наивысшим приоритетом лучше начиная с начала.

    • @Kokurorokuko
      @Kokurorokuko Рік тому

      Почему быстрее? Просто в разных местах проверка происходит.

  • @Ermine882
    @Ermine882 6 років тому +7

    Спасибо за урок.

  • @ПавелБойко-ь2д
    @ПавелБойко-ь2д 2 роки тому +5

    Сама логика понятна , но только не понятно зачем я это узнал 0.0 Спасибо за урок)

    • @Diadema566
      @Diadema566 2 роки тому

      А зачем ты это смотрел?🤔

  • @TheDavBag
    @TheDavBag Рік тому +2

    при выпуске элементов на приоритетном исключении надо бы иметь счетчик вхождения по приоритетам, ведь мы ищем по приоритету M но не знаем сколько еще элементов в N их множестве
    если счетчика нет, то придется доходить до конца очереди постоянно

  • @moonrider8697
    @moonrider8697 6 років тому +6

    Спасибо за урок

  • @konstantinsavenkov353
    @konstantinsavenkov353 6 років тому +6

    Спасибо за видео, не слышал про такую структуру данных (кольцевая очередь с приоритетом). Однако разве не проще иметь N обычных очередей, где N - количество приоритетов. У очереди с приоритетом есть один минус, как мне кажется. Если в очереди есть только элементы с минимальным приоритетом, то нужно сначала пройтись от начала и до конца списка, пытаясь найти элементы с приоритетом 1. Затем опять пройтись сначала, пытаясь найти элементы 2 и только потом обработан мы самый первый элемент списка, так как кроме 3-его приоритета нет ничего. Можно конечно во время прохода пересчитать количество элементов с разными приоритетами. И если нет элементов с 2-ым, то сразу выполнять 3-ий. Однако мне кажется, что это сильно усложняет алгоритм обработки элементов данной структуры. 3 очереди, где в каждой элементы своего приоритета выглядят намного проще.

    • @АндрейКузнецов-ц9д
      @АндрейКузнецов-ц9д 6 років тому

      Но почему бы вам не завести счетчики элементов для каждого приоритета и исходя из их текущих значений принимать решение о поиске

    • @konstantinsavenkov353
      @konstantinsavenkov353 6 років тому

      Андрей Кузнецов эту информацию нужно ведь где-то хранить. Допустим, что мы будем хранить эту информацию в структуре. Исходя из того, что очередь вся состоит из одного типа Node, где переменная-указатель хранит адрес другого такого Node, то хранить эту информацию в самой структуре не имеет смысла, так как будет дублирование информации. Получается, что нужна какая-то дополнительная структура PriorityQueue которая будет иметь поля дополнительной информации и собственно сам список. В принципе данные будут собраны в одном месте и логика тоже. Возможно это дело вкуса. В каких-то задачах лучше все данные хранить в одном таком списке, а в каких-то в разных.

    • @АндрейКузнецов-ц9д
      @АндрейКузнецов-ц9д 6 років тому

      Ну если проводить аналогию с реализацией односвязного списка, мы хранили количество элементов Size в самом классе List, Node у нас был приватным классом в классе List, соответственно (проводя аналогию с односвязным списком) мы заводим дополнительно 3 поля класса List priority1, priority2 и priority3 и там храним количество элементов каждого приоритета ну и при поиске смотрим в эти поля и определяемся где нам надо искать (если допустим priority1 = 0, priority2 = 0 то можно сразу начинать с 3 приоритета не тратя время на остальное)

  • @overdoses1794
    @overdoses1794 6 років тому +4

    Спасибо за старания!

  • @АндрейКузнецов-ц9д
    @АндрейКузнецов-ц9д 6 років тому +4

    Сергей подскажите пожалуйста, получается в кольцевой очереди у нас всегда строго определенное количество элементов? или мы все же можем вставлять туда элементы? если да, то куда? ну и соответственно наверное удалять их не имеет смысла.

  • @temuriyali252
    @temuriyali252 6 років тому +6

    Krasavchik

  • @АлександрКиселев-е2г

    Большое спасибо )

  • @stensej6841
    @stensej6841 4 роки тому

    Спасибо Сергей !

  • @Diadema566
    @Diadema566 2 роки тому

    Шикарные уроки! Жаль, что мало( мне си не нужно, а вот такие общин вещи очень интересны

  • @HugoBossKosta
    @HugoBossKosta 2 роки тому

    спасибо за интересные доп уроки)

  • @ИринаИрина-ш5ы7р

    Всё понятно!

  • @mykhailomorhal2181
    @mykhailomorhal2181 6 років тому +2

    Спасибо

  • @forgwent
    @forgwent 4 роки тому +4

    так в предыдущем уроке говорилось,что очередь предполагает доступ к первому и последнему элементу только,как можно выбрать элемент из середины?

    • @stepanbazrov6330
      @stepanbazrov6330 4 роки тому +1

      Это абстракция для программиста видимо. Так как внутри двусвязный список, то можно

  • @АртемПольщак
    @АртемПольщак 3 роки тому

    Видео зачет, очень помогло)

  • @aleksandaralavantic181
    @aleksandaralavantic181 6 років тому +1

    Не является ли бинарная куча лучшим подходом, чем эти которые вы упомянули?

  • @justfullscale
    @justfullscale 6 років тому +20

    Зеленые - инвалиды, синие - беременные, красные - обычные люди :)

    • @tapirskiy
      @tapirskiy 4 роки тому +1

      зеленые чисто за сижками пришли

  • @ПавелКостюченко-з1ц
    @ПавелКостюченко-з1ц 6 років тому +2

    Привет, ты говорил что проще изучать программирование делая какой-то проект, можешь ли ты привести примеры таких проектов и посоветовать сборники задач для изучения программирования.

    • @konstantinsavenkov353
      @konstantinsavenkov353 6 років тому +2

      Павел Костюченко собственно проект может абсолютно каким угодно. Хоть тетрис, хоть домашний менеджер файлов, напоминалка, архиватор, программа по выкачиванию фильмов, да хоть ОС какая-нибудь. Проект может быть каким угодно, главное чтобы он был интересен разработчику.

  • @skarty7672
    @skarty7672 2 місяці тому

    при просмотре сразу возникает вопрос к реализацие, почему не сделать 3(количество уровней приоретета) очереди в одном классе, и работать с ними как с обычными, сортируя перед добавлением, и добавляя в нужную очередь, и доставать по логике если пустой то проверять следующий уровень на пустоту и доставать, если пустой то идти дальше
    по сути это вектор/просто массив(смотря от задачи, но скорее всего количество уровней приоретета или не будет или очень редко будет меняться) из очередей только ограниченный для пользователя, мне кажется это может быть проще в реализауии, и более эффективно в работе?

  • @nika7149
    @nika7149 2 роки тому +1

    Получается, нам нужно перебрать все элементы очереди, чтобы узнать, что элементов с более высоким приоритетом не осталось? То есть пройтись по всей очереди, убедиться, что элементы с приоритетом 1 закончились, только тогда можно браться за элементы с приоритетом - 2.

  • @nikitasuyazov2060
    @nikitasuyazov2060 Місяць тому

    То есть по сути есть 3 очереди, каждая из которых по приоритету стоит в одной большой очереди? Сначала очередь с элементами "1", потом "2" и т.д.

  • @andykharikhanov7325
    @andykharikhanov7325 6 років тому +1

    А как правильно удалять visual studio и его надо скачивать только на диск С?

  • @alexshyshkov3919
    @alexshyshkov3919 6 років тому +3

    а будут видео по STL???)

  • @Vlad_Ofitserov
    @Vlad_Ofitserov Рік тому

    Дякую!

  • @alder_hev
    @alder_hev Рік тому

    схемы конечно понятные, но хорошо было бы и на код посмотреть. как задавать этот приоритет например

  • @askhat1654
    @askhat1654 4 роки тому

    Добрый день. Не могли бы подсказать? Реализация данной структуры данных на примере библиотеки из C# or Java?

  • @kaynsolo
    @kaynsolo 6 років тому +1

    Like!

  • @s.question2012
    @s.question2012 6 років тому

    Здравствуйте. У меня один вопрос возник, никак не могу найти ответ, можете помочь?
    Если у нас есть например односвязный циклический список, то как мы можем узнать первый и последний эелементы, если скажем получили доступ с середины списка ?
    Не могу найти ответ, а сам не понимаю ка сделать. Ведь последний элемент будет всегда указывать на первый. Могу определить только цикличен ли список или нет, а вот найти первый и последний не понимаю как
    буду очень благодарен за помощь

    • @МаксимБеликов-ы8г
      @МаксимБеликов-ы8г 6 років тому

      Не очень понял, что вы хотите, я думаю надо создать два указателя, на первый и последний элементы

  • @bossmusa9075
    @bossmusa9075 4 роки тому

    7:30

  • @asankod8549
    @asankod8549 3 роки тому

    1 это Бабка 2 это Я только спрошу 3 это Злой Я XD

  • @lebedead
    @lebedead 3 роки тому

    мне одному показалось что голос Сергея похож на голос ValeraGhost который обзоры игр делает?

  • @yrikfirex_zxv1664
    @yrikfirex_zxv1664 4 роки тому

    топпппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппп

  • @memorylearn8566
    @memorylearn8566 4 роки тому

    +

  • @izvarzone
    @izvarzone 2 роки тому

    я не знал, что
    в фотошопе есть Line Tool.

  • @andreifokin311
    @andreifokin311 Рік тому

    Музыка на заднем плане (хоть и хорошая) очень сильно отвлекает

    • @Никита-с9г
      @Никита-с9г 4 місяці тому

      Иди нах.уй единственное хорошее что есть в его видео музыка

  • @OleksandraShubovych
    @OleksandraShubovych 3 роки тому

    кто эти люди которые ставят дизлайки?

    • @alexandraneverova4228
      @alexandraneverova4228 3 роки тому +1

      Австралийцы, они так лайки ставят просто

  • @ВітяКоміссаров
    @ВітяКоміссаров 2 роки тому

    спасибо

  • @DD0S2
    @DD0S2 3 роки тому

    спасибо