Сортировка выбором в языке C#
Vložit
- čas přidán 2. 08. 2021
- Поддержать канал
www.donationalerts.com/r/basi...
В этом видео мы научимся самому простому способу сортировки массива - сортировки выбором в языке программирования C#
Приятного просмотра!
Игры, созданные мной
store.steampowered.com/search...
Мой инстаграм
/ basicsloth.games
Music from filmmusic.io
by Kevin MacLeod (incompetech.com)
License: CC BY (creativecommons.org/licenses/...)
#сишарп #сортировкавыбором #алгоритм #программирование
Спасибо огромное!!!!! ))))))
Отоичное понятное видео! Спасибо)
Спасибо тебе огромное. Все сортировки какие знаю, учил у тебя))
Спасибо😊 очень приятно, что помогло
Ура я снова программист теперь
Как поставить 1001 лайк, очень выручило
Ура, новый видос👍, не знал о такой сортировке (потому что знаю только пузырьком😂), погуглил разницу между пузырьком и этим, она только в присвоении заключается? В пузырьке сразу меняем в массиве, а тут сначала найдём, а потом меняем в массиве?
В пузырьковой вообще логика немного другая, там попарно элементы сравниваются и в случае необходимости меняются местами, то есть за одно действие элемент сдвигается только на одну позицию в нужную сторону. А здесь элементы сразу перемещаются на нужную позицию, начиная с минимального)
Но про пузырьковую я тоже сниму😉
Ок, буду ждать)
аа как сложно вынос мозга
Главное один раз вдумчиво послушать, и все станет понятно)
Попробуйте на листочке написать, и каждую итерацию не торопясь, хорошенько обдумать.
Я на это потратил два дня, и в итоге понял всё. Хоть это и много, но учитывая то, что я получил, это очень даже хороший результат))
Спасибо за видео, всё очень понятно. Но как будет выглядеть код, если надо сделать эту же сортировку но с конца?
Вместо min создаём max, в цикле int i = numbers.Length-1; i>0; i--
Везде min меняем на max, знак меньше на больше.
Внутренний цикл int j =i-1; j>0; j--
В принципе вроде все изменения, код не тестила, но должен работать)
@@basicsloth всё работает, спасибо, но тогда будет ли данная сортировка считаться сортировкой с помощью максимального элемента?
@@darkatrina143 это уже какой-то философский вопрос) мне кажется, да
как добавить шаги к сортировке,а именно: чтобы каждый шаг сортировки выводился на экран,буду благодарен
Перенести последний цикл, который используется для вывода значений в консоль, в первый большой цикл, поставить его прям в самом конце после numbers[i] = temp
"N раз", хммм, почему не сказать 1 раз? "Обход N/2 обращений"? Обращений к чему? Обход - это круг, его я здесь не вижу, вижу отрезок или прямую - это максимум. "Получается, что при такой сортировке будет N*N/2" из чего и куда получается, мне это совершенно не очвеидно. Если взять во внимание, что N - это 1 раз, то получается 1 * 1/ 2 = 1.5 ведь? Дальше не выдержал.
Потому что N это не 1 раз, N это длина массива, которая может быть, какой угодно.
Обращений к массиву.
Обход массива - это устойчивое выражение, и почему обход это обязательно круг?
@@basicsloth ну вы сами сказали, что N раз, я же вас цитировал.
Массив - это неодушевленное, как к нему можно обращаться? Эммм... Если все таки так представить, то выражаясь языком оригинала - "array" - множество при его обходе никоим образом не задействовано, обход, вообще, не подразумевает каких-либо действий по отношению к объекту обхода, который находится внутри. Люди обычно говорят круг, потому что квадрат - это довольно таки точная фигура, проще намотать круг. Возможно, в российском переводе информация доносится искажено, как в случае "Теории относительности", которая на самом деле является "Теорией относимости". Спасибо за ваш труд
@@exactly4234 хорошо, пусть будет так
В коде сортировки забыли после операций с Temp и обменом места элементов, присвоить min=i; иначе сортировка не будет работать корректно. У меня вывод происходит вот так:
-3
-86
-34
0
4
5
9
9
18
10
52
67
Решение: temp = arr[min];
arr[min] = arr[i];
arr[i] = temp;
min = i; //Добавить это
А в начале цикла min=i не забыли написать? Получается же, что в том варианте, что вы предложили, min меняется в конце тела цикла, то есть с ней потом больше ничего не происходит, а в самом начале следующей итерации она меняется снова. То есть мы присваиваем ей новое значение, потом ничего с ней не делаем и меняем вновь
@@basicsloth да всё в точности написал как у вас. На самом деле присвоение min=i; стоит писать внутри второго внутреннего цикла перед условием. Возможно это что-то с версиями .NET
@@basicsloth
int []arr= { 9, 67, -86, 0, 5, 9, 52, 10, -34, 4, 18, -3 };
int min;
int temp;
for (int i=0;i
@@damienjurado9267 попробовала, у меня и тот, и другой варианты нормально, одинокого работают
@@basicsloth просто, я не знаю как у вас корректо это работает или же, у вас в видео одно, а на пк другое, но должно быть
temp = arr[i];
arr[i] = arr[min];
arr[min] = temp;
}