Сортировка массива вставками на Си

  Рет қаралды 70,331

Тимофей Хирьянов

Тимофей Хирьянов

5 жыл бұрын

Сортировка массива: постановка задачи.
Сортировка вставками.
Курс молодого бойца по информатике (Язык Си).
cs.mipt.ru/c_intro

Пікірлер: 53
@maxrus6173
@maxrus6173 5 жыл бұрын
Лучшее объяснение алгоритма вставки на всем русскоязычном youtube!
@olitakic
@olitakic 4 жыл бұрын
Большое спасибо! Вы огромный молодец. Все доступно и понятно.
@golem7060
@golem7060 5 жыл бұрын
Молодец, не знаю что без тебя делал)
@user-on2nb5fl8p
@user-on2nb5fl8p 2 жыл бұрын
Браво, Маэстро! По Вашему уроку объяснил сортировку по методу вставки! Все поняли и всё понятно! СПАСИБО от Солдатов!
@epheymind8475
@epheymind8475 2 жыл бұрын
Не могли бы объяснить почему в переменную N записалось максимальное число в массиве?
@user-or1hy4xz8u
@user-or1hy4xz8u 2 жыл бұрын
@@epheymind8475 N - это весь отсортиров. массив, а не какое-то число..
@OGIDOG1
@OGIDOG1 5 жыл бұрын
Отличный материал. Покажите, пожалуйста, реализацию "быстрой сортировки". Она же в большинстве стандартных библиотек реализована (C++, Java).
@volselongames4505
@volselongames4505 2 жыл бұрын
Чувак спасибо за материал, успехов тебе
@user-em4dd8sx4y
@user-em4dd8sx4y 2 жыл бұрын
Какой же хороший человек
@buhar901
@buhar901 Жыл бұрын
Сразу видно нормально
@karelalex
@karelalex 5 жыл бұрын
Можно слегка улучшить алгоритм, убрав перестановку элементов. Делается это примерно так: пишем текущий во временную переменную, затем сравниваем его с предыдущим, если предыдущий больше, то пишем его значение в текущую, сдвигаемся на индекс вниз, опять сравниваем и так далее. Ещё есть вариант, чтобы не проверять, дошли ли мы до начала массива или нет, первой итеррацией найти минимальный элемент и положить его в первую ячейку.
@eladkipiani2200
@eladkipiani2200 4 жыл бұрын
какая разница, если после остановки весь промежуточный ряд надо будет передвигать по тому же принципу через буфер? не проще сразу это делать за один пход? или я что то не допонял?
@ZStanislav
@ZStanislav 4 жыл бұрын
сортировка Шелла и есть усовершенствованная сортировка вставками.
@linterrupt
@linterrupt 3 жыл бұрын
@@eladkipiani2200 он имеет ввиду int x = arr[i]; int k = i; while (k > 0 and arr[k - 1] > x) { arr[k] = arr[k - 1]; k--; } arr[k] = x; В этом случае Не надо будет каждый раз внутри цикла менять местами переменные. Можно просто как в циклическом сдвиге сдвинуть элементы вправо. То есть внутри цикла вместо вот этого: int tmp = arr[k]; arr[k] = arr[k - 1]; arr[k - 1] = tmp; j--; Мы получаем вот это: arr[k] = arr[k - 1]; k--; Меньше операций.
@eladkipiani2200
@eladkipiani2200 4 жыл бұрын
Respect
@ishanelava6962
@ishanelava6962 3 жыл бұрын
можно такое же видео,только методом выбора?
@ZStanislav
@ZStanislav 4 жыл бұрын
сортировка Шелла интересует.
@derka211
@derka211 3 жыл бұрын
а сли 0 является элементом массива? что тогда нужно писать в условии выхода из цикла? х равен ноль-терминанте или EOF? что находится в конце целочисельного массив, ведь насколько знаю ноль-терминанта касается массива символов (де-факто - строки)?
@elophostia
@elophostia 3 жыл бұрын
Это цикл в цикле. Главный цикл заканчивается, когда i станет равно длинне массива - 1.
@the237th
@the237th 3 жыл бұрын
Спасибо за ролик. Возник вопрос. Чтобы присвоить значение аргументу функции внутри тела функции, нужно передать его указатель (как в scanf-е). А тут мы передаем массив, а не указатель на него, и присваивание "глобальному" массиву А происходит. Почему так получается?
@user-qj3fk1yt5b
@user-qj3fk1yt5b 2 жыл бұрын
имя массива - указатель на первый элемент массива
@allex6829
@allex6829 Жыл бұрын
Массив никогда не копируется в функцию, это не как переменная. В функцию передается адрес массива. если копировать сам массив на 10 000 элементов, то это безумие, от того сколько ресурсов понадобится. По умолчарию там заложено &mas[ ] а на деле просто mas[ ]
@MineTest_game
@MineTest_game Жыл бұрын
I like Code::Blocks. It is my favorite IDE for Windows.
@nicholasspezza9449
@nicholasspezza9449 4 ай бұрын
u r loh from the block.
@alexandrprodan8794
@alexandrprodan8794 4 жыл бұрын
Извините за тупой вопрос, но как сортировать по убыванию, а то я попробовал сделать но у меня цикл бесконечный получился. Помогите пожалуйста.
@user-ic2wx3qw1w
@user-ic2wx3qw1w 4 жыл бұрын
Не поздна надеюсь отвечаю, просто в while (k > 0 and arr[k-1] > arr[k]) измени условие arr[k-1] > arr[k] на arr[k-1] < arr[k]
@alexandrprodan8794
@alexandrprodan8794 4 жыл бұрын
@@user-ic2wx3qw1w я справился сам посже, но спасибо
@descar1626
@descar1626 4 жыл бұрын
ее, киса на фоне
@lestatlvv
@lestatlvv 5 жыл бұрын
14:14 Почему такой большой execution time (4.256s)?
@alexandrvint7098
@alexandrvint7098 5 жыл бұрын
Вероятно срабатывает фаервол, т.е. начинает проверять скомпилированный исполняемый файл.
@dezm0n679
@dezm0n679 5 жыл бұрын
Время ввода учитывается вроде там
@Mani_Fast
@Mani_Fast 2 жыл бұрын
@@dezm0n679 да
@user-cr3cg2nm1t
@user-cr3cg2nm1t Жыл бұрын
в строке второго цикла while (k > 0 and A[k-1] > A[k]) стоит сказать, что второе условие (после and не выполняется при k = -1) это совсем не очевидно, т.к. выражение в скобках ( ) и по логике математики должно быть вычислено полностью
@allex6829
@allex6829 Жыл бұрын
По логике k = -1, это выход за границы массива, и первое условие говорит об этом, Я пойду только пока я больше нуля( k > 0)
@nicholasspezza9449
@nicholasspezza9449 4 ай бұрын
чушь какую-то написал.
@alexandrprodan8794
@alexandrprodan8794 4 жыл бұрын
сортировка вставками 11:15
@mihaitimofti9789
@mihaitimofti9789 2 жыл бұрын
это bubble sort?
@MrMASANICH
@MrMASANICH Жыл бұрын
Но вопрос логичный, у меня подбный тоже возник!
@user-lh7vp8ju9u
@user-lh7vp8ju9u 11 ай бұрын
на какую сортировку похож этот код? for(int i = 0; i < n; i++) { for(int j = 1; j < n-i; j++) { if(arr[i] > arr[n-j]) { int tmp = arr[n-j]; arr[n-j] = arr[i]; arr[i] = tmp; } } }
@egorrrus_163
@egorrrus_163 Жыл бұрын
Сортировка не работает
@andreydar2823
@andreydar2823 3 жыл бұрын
Бедные солдаты.
@maxrus6173
@maxrus6173 5 жыл бұрын
Без 39 строки (К-=1) тоже работает
@juvusart
@juvusart 5 жыл бұрын
Нет, не работает. Но если в этой строке поставить i = 1, то получится сортировка пузырьком.
@user-ig3tr8yh8d
@user-ig3tr8yh8d 2 ай бұрын
Чел видимо в армии небыл, прапор сортирует от высокого к низкому😂
@lesgrossman834
@lesgrossman834 3 жыл бұрын
Хах. Заучка математик проиграет прапору. Прапор может обойтись одной строкой кода со встроенной функцией бысто(мля)...
@user-wb1zc6we4y
@user-wb1zc6we4y 3 жыл бұрын
Какой блять строкой кода, какой нахуй заучка математик? Он показывает один из алгоритмов сортировки и как его написать самому. То что ты отсортируешь этот массив "строчкой кода", будет означать лишь то, что ты воспользовался встроенной функцией
@lesgrossman834
@lesgrossman834 3 жыл бұрын
@@user-wb1zc6we4y ты идиот без чувства юмора и тебе девки не дают.
@chyapay
@chyapay 4 жыл бұрын
почему не взять и не купить нормальный микрофон, который не СКРИПИТ, и тогда восприятие материала будет более комфортным для зрителя?
@user-td3nd6qy8m
@user-td3nd6qy8m 3 жыл бұрын
Умный человек , хоть и гей .
@Andrew_Petrovich_Zykov
@Andrew_Petrovich_Zykov 10 ай бұрын
сильны ты свой интеллектуальный уровень завысил...
Асимптотика сортировок. Сортировка подсчётом на Си
22:18
Копирование массива, реверс циклический сдвиг на Си
20:30
Miracle Doctor Saves Blind Girl ❤️
00:59
Alan Chikin Chow
Рет қаралды 35 МЛН
Omega Boy Past 3 #funny #viral #comedy
00:22
CRAZY GREAPA
Рет қаралды 26 МЛН
La final estuvo difícil
00:34
Juan De Dios Pantoja
Рет қаралды 27 МЛН
Техника безопасности при работе с памятью в Си
19:25
Тимофей Хирьянов
Рет қаралды 33 М.
Адреса и указатели в Си. Адресная арифметика
27:47
Тимофей Хирьянов
Рет қаралды 158 М.
Ханойские башни на Си
12:25
Тимофей Хирьянов
Рет қаралды 77 М.
Создание и заполение массива на Си
12:35
Тимофей Хирьянов
Рет қаралды 81 М.
C# QuickSort Быстрая сортировка
21:32
codaza
Рет қаралды 29 М.
Задача из Собеседования на 160,000 Евро в Год
13:27
Саша Лукин
Рет қаралды 1,1 МЛН