Тёмный

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

JavaRush
Подписаться 213 тыс.
Просмотров 47 тыс.
50% 1

Весь курс CS50 - javarush.com/s/course_cs50
В видео разберемся, с понятием сортировки слиянием, и поймем, как можно её реализовать с помощью рекурсии. Снова разделяем и властвуем, уже практически по привычке.
Фрагмент из 8 лекции курса CS50

Опубликовано:

 

6 июн 2017

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 24   
@krukah1
@krukah1 7 лет назад
На мой взгляд он ни разу не упомянул принцип мерджа списков, что самое важное в данном случае.
@valeriyvaleriy9563
@valeriyvaleriy9563 7 лет назад
Поддерживаю. Ждал когда он объяснит про само слияние, вместо этого он раз по сто повторил левая часть, правая часть и ещё сто раз тронул себя за лоб.. >:/
@6161k
@6161k 6 лет назад
+
@jetli1311
@jetli1311 6 лет назад
ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-6woBwlm1tRM.html
@TheProfessionalGambler
@TheProfessionalGambler 3 года назад
он начал объяснять мерж на 9:50
@ruslansitdikov1489
@ruslansitdikov1489 2 года назад
God bless you!! This explanation saved my brain!!!
@Ivan-nm9yo
@Ivan-nm9yo 3 года назад
Бесполезное обьяснение, никак не обьясняется само слияние, как там реализована вставка в правильном порядке
@MegaDecole
@MegaDecole 7 лет назад
Спасибо за перевод!!! Очень полезная инфа
@736939
@736939 6 лет назад
Алгоритмы от молодого Брюса Уиллиса
@user-lj8by1ln8v
@user-lj8by1ln8v 5 месяцев назад
Для простоты понимания - сплит с мерджем: 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; } }
@bogdantymKOLUBO
@bogdantymKOLUBO 4 года назад
в самом конце он и рассматривает как происходит слияние на самых длинных кусках массива
@BeloFFSergey
@BeloFFSergey 7 лет назад
что делать если исходный список не кратен двум?
@forsic1
@forsic1 7 лет назад
Сергей Белов добавить нулевой элемент )
@kpecmuk
@kpecmuk 7 лет назад
по коду не важно кратно оно двум или нет. ты же итератор перемещаешь пока он < .length()
@ruslansitdikov1489
@ruslansitdikov1489 2 года назад
ничего не делать. разбивка идёт до каждого элемента и потом также сливается
@user-kt5ir2vn5f
@user-kt5ir2vn5f 11 месяцев назад
Как в жизни, человек приходит из несортированого списка на землю, сортируется и уходит в целое
@ruslansitdikov1489
@ruslansitdikov1489 2 года назад
Что за недовольство в комментариях? Это лучшее объяснение в мире!!!
@user-or1hy4xz8u
@user-or1hy4xz8u 2 года назад
далеко не лучшее...
@igortarasov4482
@igortarasov4482 3 года назад
Много лишних слов, можно объяснить проще
@flat3237
@flat3237 7 лет назад
Нафига вообще крошить видео годичной давности?
@forsic1
@forsic1 7 лет назад
flat323 потому что ты не центр вселенной
@aka_Sempai
@aka_Sempai 5 лет назад
@@forsic1 правильно. потому что центр вселенной Я
Далее
Java. Сортировка слиянием.
14:55
Просмотров 22 тыс.
DELETE TOXICITY = 5 LEGENDARY STARR DROPS!
02:20
Просмотров 10 млн
How To Learn Algorithms? Why? #codonaft
19:22
Просмотров 559 тыс.
DELETE TOXICITY = 5 LEGENDARY STARR DROPS!
02:20
Просмотров 10 млн