Сортировка выбором в языке C#

Sdílet
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/...)
    #сишарп #сортировкавыбором #алгоритм #программирование

Komentáře • 32

  • @alexanderasaturyan8334
    @alexanderasaturyan8334 Před 2 lety +1

    Спасибо огромное!!!!! ))))))

  • @Alkain18
    @Alkain18 Před rokem

    Отоичное понятное видео! Спасибо)

  • @HeIvis
    @HeIvis Před 2 lety +3

    Спасибо тебе огромное. Все сортировки какие знаю, учил у тебя))

    • @basicsloth
      @basicsloth  Před 2 lety +3

      Спасибо😊 очень приятно, что помогло

  • @6lake
    @6lake Před 10 měsíci

    Ура я снова программист теперь

  • @vadimkrasovskuy1772
    @vadimkrasovskuy1772 Před 7 měsíci

    Как поставить 1001 лайк, очень выручило

  • @-.._._..-
    @-.._._..- Před 2 lety +1

    Ура, новый видос👍, не знал о такой сортировке (потому что знаю только пузырьком😂), погуглил разницу между пузырьком и этим, она только в присвоении заключается? В пузырьке сразу меняем в массиве, а тут сначала найдём, а потом меняем в массиве?

    • @basicsloth
      @basicsloth  Před 2 lety

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

    • @basicsloth
      @basicsloth  Před 2 lety

      Но про пузырьковую я тоже сниму😉

    • @-.._._..-
      @-.._._..- Před 2 lety +1

      Ок, буду ждать)

  • @helmas_witch
    @helmas_witch Před 2 lety +6

    аа как сложно вынос мозга

    • @basicsloth
      @basicsloth  Před 2 lety +3

      Главное один раз вдумчиво послушать, и все станет понятно)

    • @alexanderasaturyan8334
      @alexanderasaturyan8334 Před 2 lety +1

      Попробуйте на листочке написать, и каждую итерацию не торопясь, хорошенько обдумать.
      Я на это потратил два дня, и в итоге понял всё. Хоть это и много, но учитывая то, что я получил, это очень даже хороший результат))

  • @darkatrina143
    @darkatrina143 Před rokem

    Спасибо за видео, всё очень понятно. Но как будет выглядеть код, если надо сделать эту же сортировку но с конца?

    • @basicsloth
      @basicsloth  Před rokem

      Вместо min создаём max, в цикле int i = numbers.Length-1; i>0; i--
      Везде min меняем на max, знак меньше на больше.
      Внутренний цикл int j =i-1; j>0; j--
      В принципе вроде все изменения, код не тестила, но должен работать)

    • @darkatrina143
      @darkatrina143 Před rokem

      @@basicsloth всё работает, спасибо, но тогда будет ли данная сортировка считаться сортировкой с помощью максимального элемента?

    • @basicsloth
      @basicsloth  Před rokem

      @@darkatrina143 это уже какой-то философский вопрос) мне кажется, да

  • @Creator0_0-
    @Creator0_0- Před rokem

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

    • @basicsloth
      @basicsloth  Před rokem +1

      Перенести последний цикл, который используется для вывода значений в консоль, в первый большой цикл, поставить его прям в самом конце после numbers[i] = temp

  • @exactly4234
    @exactly4234 Před 7 měsíci

    "N раз", хммм, почему не сказать 1 раз? "Обход N/2 обращений"? Обращений к чему? Обход - это круг, его я здесь не вижу, вижу отрезок или прямую - это максимум. "Получается, что при такой сортировке будет N*N/2" из чего и куда получается, мне это совершенно не очвеидно. Если взять во внимание, что N - это 1 раз, то получается 1 * 1/ 2 = 1.5 ведь? Дальше не выдержал.

    • @basicsloth
      @basicsloth  Před 7 měsíci

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

    • @exactly4234
      @exactly4234 Před 7 měsíci

      @@basicsloth ну вы сами сказали, что N раз, я же вас цитировал.
      Массив - это неодушевленное, как к нему можно обращаться? Эммм... Если все таки так представить, то выражаясь языком оригинала - "array" - множество при его обходе никоим образом не задействовано, обход, вообще, не подразумевает каких-либо действий по отношению к объекту обхода, который находится внутри. Люди обычно говорят круг, потому что квадрат - это довольно таки точная фигура, проще намотать круг. Возможно, в российском переводе информация доносится искажено, как в случае "Теории относительности", которая на самом деле является "Теорией относимости". Спасибо за ваш труд

    • @basicsloth
      @basicsloth  Před 7 měsíci

      @@exactly4234 хорошо, пусть будет так

  • @damienjurado9267
    @damienjurado9267 Před rokem +1

    В коде сортировки забыли после операций с 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; //Добавить это

    • @basicsloth
      @basicsloth  Před rokem

      А в начале цикла min=i не забыли написать? Получается же, что в том варианте, что вы предложили, min меняется в конце тела цикла, то есть с ней потом больше ничего не происходит, а в самом начале следующей итерации она меняется снова. То есть мы присваиваем ей новое значение, потом ничего с ней не делаем и меняем вновь

    • @damienjurado9267
      @damienjurado9267 Před rokem

      @@basicsloth да всё в точности написал как у вас. На самом деле присвоение min=i; стоит писать внутри второго внутреннего цикла перед условием. Возможно это что-то с версиями .NET

    • @damienjurado9267
      @damienjurado9267 Před rokem +1

      @@basicsloth
      int []arr= { 9, 67, -86, 0, 5, 9, 52, 10, -34, 4, 18, -3 };
      int min;
      int temp;
      for (int i=0;i

    • @basicsloth
      @basicsloth  Před rokem

      @@damienjurado9267 попробовала, у меня и тот, и другой варианты нормально, одинокого работают

    • @-crazy_show-1665
      @-crazy_show-1665 Před rokem

      @@basicsloth просто, я не знаю как у вас корректо это работает или же, у вас в видео одно, а на пк другое, но должно быть
      temp = arr[i];
      arr[i] = arr[min];
      arr[min] = temp;
      }