Сортировка Шелла (Shell sort) - Алгоритмы C#

  Рет қаралды 6,091

CODE BLOG

CODE BLOG

5 жыл бұрын

Сортировка Шелла - Shell sort - это алгоритм сортировки, который является усовершенствованным вариантом сортировки вставками. Идея сортировки методом Шелла состоит в том, чтобы сортировать элементы отстоящие друг от друга на некотором расстоянии step. Затем сортировка повторяется при меньших значениях step, и в конце процесс сортировки Шелла завершается при step = 1 (а именно обычной сортировкой вставками). В худшем случае также показывает квадратичное время.
В рамках данного курса будут изучены популярные алгоритмы сортировки C#. Нами будет рассмотрена теоретическая основа и реализована на практике сортировка c#.
Подписывайтесь на мои социальные сети, там много всего интересного и полезного:
codeblog
ttttt.me/codeblog
zen.yandex.ru/codeblog
Поддержать канал: www.donationalerts.ru/r/shwanoff
Кстати, меня зовут Шванов Вадим, и я программист на языке C# уже больше 8 лет и автор этого канала CODE BLOG. Я рассказываю про IT технологии и веду этот курс по языку C# с нуля. В его рамках мы рассмотрим как базовый синтаксис языка C Sharp, так и его практическое применение и специальные технологии, такие как ASP .NET, Core, MVC, Unity, WCF, WPF, структуры данных и алгоритмы, паттерны проектирования, информатика, программное обеспечение и многое другое. Для меня важно не только показать практическое применение языка C#, но и объяснить основную идею и базовые понятия Computer Science. Мы изучим основы программирования на языке си шарп. В качестве основного инструмента разработки используется visual studio c# и проекты на visual c#. Программирование c# - не простая задача, но применив должное количество усилий и времени можно получить возможность называть себя c# разработчик. Разработка c# приложений достаточно удобный процесс, который будет понятен даже начинающему dotnet программисту.
Sorting algorithms c#. Shellsort c#. Programming and C# tutorial.
Подробный курс по языку программирования C#:
• Преимущества и недоста...
Подробный курс по структурам данных на языке программирования C#:
• Связный список (linked...
Подробный курс по алгоритмам сортировки на языке C#:
• Сортировка пузырьком (...
Разговоры о программировании, мотивации, и ответы на IT вопросы:
• Практика программирова...
#программирование #csharp #алгоритмы #ityoutubersru #codeblog

Пікірлер: 21
@CODEBLOG
@CODEBLOG 5 жыл бұрын
Сортировка Шелла - Shell sort - придумал Дональд Л. Шелл. Ее необычность состоит в том, что она рассматривает весь список как совокупность перемешанных подсписков. На первом шаге эти подсписки представляют собой просто пары элементов. На втором шаге в каждой группе по четыре элемента. При повторении процесса число элементов в каждом подсписке увеличивается, а число подсписков, соответственно, падает. Исходники проекта доступны на github по ссылке github.com/shwanoff/SortAlgorithms Не стесняйтесь задавать вопросы в комментариях, высказывать свое мнение, а также обязательно поставьте лайк под видео. Этим вы легко можете помочь развитию образовательного канала. И приятного просмотра!
@serhiishulyma9790
@serhiishulyma9790 4 жыл бұрын
Здравствуйте, после каждого разбиения массива сортировка осуществляется методом вставки. Вы об этом тоже говорите, но почему тогда в коде сортировка осуществляется методом пузырька. Должно быть что-то в этом роде: step=count/2; while (step>0) { for(i=step; i < count; i++) { j=i; temp=A[i]; while(j>0 && temp< A[j-step]) { A[j]=A[j-step]; j-=step; } A[j]=temp; } step/=2; } Объяснение принципа работы алгоритма и подача информации понравилась)
@dronsan-unity7302
@dronsan-unity7302 Жыл бұрын
log 7 не 0,8, а 2,8 и умножить на 7 = 19,649. log 7, это типо в какую степень надо двойку возвести, чтобы получить 7
@ivanivanovq2964
@ivanivanovq2964 5 жыл бұрын
в расчёте сложности n*logn брали логарифм по основанию десять, разве не по двум нужно? 28:57
@CODEBLOG
@CODEBLOG 5 жыл бұрын
Да, спасибо за исправление
@glukis7970
@glukis7970 5 жыл бұрын
B Вubble_CompareEvent добавить в начало foreach (var item in items) item.SetColor(Color.Blue); наглядние выходит.
@CODEBLOG
@CODEBLOG 5 жыл бұрын
Хорошая идея. Нужно будет попробовать на следующем стриме
@BeemanDrummer
@BeemanDrummer 4 жыл бұрын
Вадим, привет. Возник вопрос, при запуске всех тестов скорость выполнения базовой сортировки у меня оказывается либо ниже, либо примерно равной скорости выполнения Shell алгоритма (обычно, 16 мс и 14 мс соответственно при 10000 элементов). Но если я их запускаю по отдельности, видна разница (16 мс и 31 мс). В чём может быть дело?
@CODEBLOG
@CODEBLOG 4 жыл бұрын
Скорее всего дело в холодном и горячем старте. При первом запуске приложения оно может работать медленнее из-за того, что нужно время на дополнительные системные операции
@amwrag
@amwrag 5 жыл бұрын
Худший случай, как подсказывает вики, не O(n^2), а O(n^1.5) и вообще это очень неплохо.
@CODEBLOG
@CODEBLOG 5 жыл бұрын
Да как же, вот тут написано n^2 ru.wikipedia.org/wiki/%D0%A1%D0%BE%D1%80%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0_%D0%A8%D0%B5%D0%BB%D0%BB%D0%B0
@grenadier1653
@grenadier1653 5 жыл бұрын
Здравствуйте, будет ли урок по Windows Form?
@CODEBLOG
@CODEBLOG 5 жыл бұрын
да, будут. но наверное около августа
@snake118
@snake118 5 жыл бұрын
Не могу понять, почему при вызове обработчиков Bubble_CompareEvent и Bubble_SwopEvent у нас меняются значения color(number) у ProgressBar не только у объектов из массива Items из класса bubblealgorithm, но и у объектов из массива items из класса формы?
@CODEBLOG
@CODEBLOG 5 жыл бұрын
Потому что это не типы по значению (как int, double и т.д), а ссылочные. У меня есть видео на канале на эту тему. По сути мы храним не сами объекты, а ссылки на область в памяти, и меняем один и тот же объект
@snake118
@snake118 5 жыл бұрын
CODE BLOG - Программирование и IT Почему тогда, когда мы меняем местами элементы в массиве items в методе Swop в классе algorithmbase, в массиве items из класса формы элементы не меняют своих позиций?
@CODEBLOG
@CODEBLOG 5 жыл бұрын
Так, смотри, либо я тебя не понял, либо ты меня ) мы меняем элементы в Items в классе algorithmbase, этот обмен генерирует событие, обработчик этого события меняет местами соответствующие progressbar
@kurnakovv
@kurnakovv 4 жыл бұрын
а если при делении например получилось 1.7 то нужно округлить до 2 или до 1? Извиняюсь за тупой вопрос)
@dbimok4544
@dbimok4544 4 жыл бұрын
до 1
@kurnakovv
@kurnakovv 4 жыл бұрын
@@dbimok4544 спасибо!)
@andrew2259
@andrew2259 Жыл бұрын
Для большего понимания сортировки Шелла kzbin.info/www/bejne/oqfXpGtqhsuibtE
C# QuickSort Быстрая сортировка
21:32
codaza
Рет қаралды 29 М.
КАК СПРЯТАТЬ КОНФЕТЫ
00:59
123 GO! Shorts Russian
Рет қаралды 2,7 МЛН
狼来了的故事你们听过吗?#天使 #小丑 #超人不会飞
00:42
超人不会飞
Рет қаралды 53 МЛН
HTML Lists and Tables in Telugu | The Indian Webbie | TIW
26:08
The Indian Webbie
Рет қаралды 48
Сортировка Шелла. Shell sort. Python
12:15
TheProgrammer'sWay
Рет қаралды 10 М.
Бинарный (двоичный) поиск в языке C#
9:13
КАК СПРЯТАТЬ КОНФЕТЫ
00:59
123 GO! Shorts Russian
Рет қаралды 2,7 МЛН