Сортировка подсчетом (counting sort)

Описание алгоритма сортировки подсчетом (counting sort) и анализ временной сложности
telegram: t.me/evgeniiml
Хотите начать программировать?
обучение для начинающих - • программирование для н...
питон для начинающих - • python для младенцев
ВЫ МОЖЕТЕ ПОДДЕРЖАТЬ ПРОЕКТ:
Яндекс кошелек:
410014557804280
money.yandex.ru/to/4100145578...
Webmoney:
R348962076583
Z840320799500
E301944634338
Ваши пожертвования помогают мне уделять больше времени и сил для создания обучающих материалов.

Пікірлер: 33

  • @demensdeum_live
    @demensdeum_live2 жыл бұрын

    Спасибо вам за видео, проблема почти у всех кто показывает как алгоритм работает в том что выборка идет из чисел которые идут друг за другом. Более наглядно будет с вариантом: 1,9,1,4,6,4,4 Тогда массив для подсчета будет: 0,1,2,3,4,5,6,7,8,9 (мин число 0, макс 9) с итоговыми счетчиками 0,2,0,0,3,0,1,0,0,1 итого 1,1,4,4,4,6,9

  • @dzianisdashkevich1848
    @dzianisdashkevich18484 жыл бұрын

    спасибо, одно из лучших объяснений!

  • @1996806
    @19968068 жыл бұрын

    Спасибо! Отличные уроки!

  • @lambdaway

    @lambdaway

    8 жыл бұрын

    +Адлена Лавлейс благодарю!)

  • @viktoryiakalamiyets3569
    @viktoryiakalamiyets35693 жыл бұрын

    Спасибо, все доходчиво!

  • @Igor_Grey
    @Igor_Grey4 жыл бұрын

    Спасибо за доходчивое объяснение!

  • @lambdaway

    @lambdaway

    3 жыл бұрын

    Благодарю🙂

  • @user-mw7ed4dv6s
    @user-mw7ed4dv6s6 жыл бұрын

    Спасибо! Быстро и понятно.

  • @fake_kira
    @fake_kira11 ай бұрын

    Спасибо большое, полезное видео

  • @vangog63
    @vangog63 Жыл бұрын

    Хорошо пояснил, спасибо!

  • @bogbond
    @bogbond6 жыл бұрын

    спасибо!

  • @JJJoraKornev
    @JJJoraKornev7 жыл бұрын

    Ну а как происходит сама сортировка не указана. Через 2 встроенных цикла? Можно ли использовать ХешМап?

  • @A0l0e0k0s1
    @A0l0e0k0s14 жыл бұрын

    Годно

  • @evgeniykorniloff9974
    @evgeniykorniloff9974 Жыл бұрын

    Здорово, вы этой связи могу порекомендовать quiksort с minvalue, maxvalue. Срединный элемент находится делением диапазона minvalue maxvalue на 2 и функция гарантирована от зависаний на любых массивах

  • @mchizhkova
    @mchizhkova5 жыл бұрын

    тут асимптотика не O(2n + k) , а O(3n + k), мы же как-то нашли что вспомогательный массив - размера k, то есть искали или количество неповторяющихся элементов или min + max

  • @danylosmahliuk8591

    @danylosmahliuk8591

    4 жыл бұрын

    2n или 3n - в итоге берём за n

  • @user-ib1kw2ip7c

    @user-ib1kw2ip7c

    4 жыл бұрын

    @@danylosmahliuk8591 почему n + n + k = n + k? Разве не должно быть 2n + k ? Или это как-то по другому работает? И ещё смущает, что в итоге мы получаем не сам упорядоченный массив, а запись из которой его можно разложить. На это же то же потребуются операции?

  • @danilbutygin238

    @danilbutygin238

    3 жыл бұрын

    @@user-ib1kw2ip7c он про то что O(An+B) приблеженно равно O(n)

  • @nikelsad

    @nikelsad

    3 жыл бұрын

    @@user-ib1kw2ip7c Вместо вывода каждого значения можно помещать его в новый массив, который и получится отсортированным. Или даже перезаписывать старый массив, если он не нужен.

  • @user-kf9dp3bw7f
    @user-kf9dp3bw7f3 жыл бұрын

    если делать так как вы показали мы не сможем нормально сортировать например строки. если сделать из массива с колличеством элементов сделать массив с индексами то алгоритм можно превратить в устойчивую сортировку.

  • @MrGenFox
    @MrGenFox3 жыл бұрын

    Обычно сортируют не числа, а какие-то структуры у которых есть ключ в виде числа. Как в таком случае работать с Вашей сортировкой?

  • @lambdaway

    @lambdaway

    3 жыл бұрын

    Вы не описали критерий, по которому хотите сортировать, если он определяется уникальным числовым ключом то трогать сами структуры скорее всего нет смысла.

  • @sakensaken1590
    @sakensaken15904 жыл бұрын

    С отрицательными не работает?

  • @lambdaway

    @lambdaway

    3 жыл бұрын

    Да ничто не мешает отрицательные числа в массив поместить

  • @YuriyBrazhnyk
    @YuriyBrazhnyk3 жыл бұрын

    А список всех уникальных чисел в отсортированном виде вы как получили? это само по себе жестяковая задачка...

  • @nikelsad

    @nikelsad

    3 жыл бұрын

    Можно пойти в лоб и создать массив размера n. Если соответствующих значений в исходном массиве нет, то после подсчёта всех чисел соответствующие ячейки будут пустыми. Например, массив {2 9 7 9}, создадим массив для подсчёта из 9 ячеек, после подсчёта получим {0 1 0 0 0 0 1 0 2}. Выводим отсортированный массив: не выводим ни одной единицы, выводим одну двойку, и т.д. Но для такого варианта желательны дополнительные танцы с бубном, если минимальное и/или максимальное значение большое, и необходимы танцы, если есть отрицательные значения...

  • @YuriyBrazhnyk

    @YuriyBrazhnyk

    3 жыл бұрын

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

  • @litbeatzzz
    @litbeatzzz3 жыл бұрын

    Все сортировки работают с числами... (любая сортировка сводится в итоге к сравнению чисел). Может вы хотели сказать цифр, а не чисел? Или натуральных чисел из небольшого диапазона (включая ноль) ?

  • @lambdaway

    @lambdaway

    3 жыл бұрын

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

  • @litbeatzzz

    @litbeatzzz

    3 жыл бұрын

    @@lambdaway А с чем по-вашему работают остальные сортировки ?

  • @lambdaway

    @lambdaway

    3 жыл бұрын

    Я имею виду, что сортировать можно не только числа

  • @lambdaway

    @lambdaway

    3 жыл бұрын

    Вы наверное имеете ввиду, что всегда можно пронумеровать множество и имея порядок и свести к сравнению чисел любую сортировку?

  • @lambdaway

    @lambdaway

    3 жыл бұрын

    Есть так называемый класс comparsion sort сортировок, они работают на любом множестве элементов с заданным порядком, порядок задаётся предикатом обладающим строго определёнными свойствами, элементы множества не обязательно числа.

Келесі