Основы программирования. Сортировка методом слияния

Поделиться
HTML-код
  • Опубликовано: 3 фев 2025

Комментарии • 24

  • @krukah1
    @krukah1 7 лет назад +80

    На мой взгляд он ни разу не упомянул принцип мерджа списков, что самое важное в данном случае.

    • @valeriyvaleriy9563
      @valeriyvaleriy9563 7 лет назад +26

      Поддерживаю. Ждал когда он объяснит про само слияние, вместо этого он раз по сто повторил левая часть, правая часть и ещё сто раз тронул себя за лоб.. >:/

    • @6161k
      @6161k 7 лет назад

      +

    • @jetli1311
      @jetli1311 6 лет назад

      ruclips.net/video/6woBwlm1tRM/видео.html

    • @TheProfessionalGambler
      @TheProfessionalGambler 4 года назад +9

      он начал объяснять мерж на 9:50

  • @AndreyTimofeev-j8y
    @AndreyTimofeev-j8y Год назад

    Для простоты понимания - сплит с мерджем:
    class MyClass {
    public static void main(String[] args) {
    System.out.println(Arrays.toString(split(new int[] {5,4,3,2,1})));
    }
    public static int[] split(int[] array) {
    if (array.length == 1) return array;
    if (array.length == 2) return mergeArrays(new int[] {array[0]}, new int[] {array[1]});
    int[] left = new int[array.length / 2];
    int[] right = new int[array.length - array.length / 2];
    System.arraycopy(array, 0, left, 0, left.length);
    System.arraycopy(array, left.length, right, 0, right.length);
    return mergeArrays(split(left), split(right));
    }
    public static int[] mergeArrays(int[] a1, int[] a2) {
    int[] a = new int[a1.length + a2.length];
    int i = 0, i1 = 0, i2 = 0;
    while (i1 < a1.length && i2 < a2.length) a[i++] = a1[i1] < a2[i2] ? a1[i1++] : a2[i2++];
    while (i1 < a1.length) a[i++] = a1[i1++];
    while (i2 < a2.length) a[i++] = a2[i2++];
    return a;
    }
    }

  • @Ivan-nm9yo
    @Ivan-nm9yo 4 года назад +15

    Бесполезное обьяснение, никак не обьясняется само слияние, как там реализована вставка в правильном порядке

  • @ruslansitdikov1489
    @ruslansitdikov1489 3 года назад

    God bless you!! This explanation saved my brain!!!

  • @MegaDecole
    @MegaDecole 7 лет назад +3

    Спасибо за перевод!!! Очень полезная инфа

  • @ruslansitdikov1489
    @ruslansitdikov1489 3 года назад +2

    Что за недовольство в комментариях? Это лучшее объяснение в мире!!!

  • @АлексЧе-б5н
    @АлексЧе-б5н Год назад

    Как в жизни, человек приходит из несортированого списка на землю, сортируется и уходит в целое

  • @736939
    @736939 7 лет назад +4

    Алгоритмы от молодого Брюса Уиллиса

  • @bogdantymKOLUBO
    @bogdantymKOLUBO 4 года назад

    в самом конце он и рассматривает как происходит слияние на самых длинных кусках массива

  • @BeloFFSergey
    @BeloFFSergey 7 лет назад +7

    что делать если исходный список не кратен двум?

    • @forsic1
      @forsic1 7 лет назад +1

      Сергей Белов добавить нулевой элемент )

    • @kpecmuk
      @kpecmuk 7 лет назад

      по коду не важно кратно оно двум или нет. ты же итератор перемещаешь пока он < .length()

    • @ruslansitdikov1489
      @ruslansitdikov1489 3 года назад

      ничего не делать. разбивка идёт до каждого элемента и потом также сливается

  • @igortarasov4482
    @igortarasov4482 4 года назад +2

    Много лишних слов, можно объяснить проще

  • @flat3237
    @flat3237 7 лет назад +1

    Нафига вообще крошить видео годичной давности?

    • @forsic1
      @forsic1 7 лет назад +9

      flat323 потому что ты не центр вселенной

    • @aka_Sempai
      @aka_Sempai 6 лет назад +1

      @@forsic1 правильно. потому что центр вселенной Я