Алгоритми на Java
Вставка
- Опубліковано 22 тра 2024
- 👉 Приєднуйся до Bobocode Community: www.bobocode.com/
____________________________________________
𝙋𝙖𝙩𝙧𝙚𝙤𝙣: / bobocode
𝙂𝙞𝙩𝙃𝙪𝙗: github.com/bobocode-projects
Telegram-канал: t.me/bobocode
Linkedin: bit.ly/2RWPQF5
Twitter: bit.ly/3vaQiOl
Тарас в LinkedIn: bit.ly/2ElWg8J
Тарас в Twitter: bit.ly/33Pmuwg
____________________________________________
3-тє заняття тренувальної програми Ultimate Enterprise Java (2021).
УВАГА! Відеозапис не містить активної частини заняття.
00:00 - Початок
00:18 - План заняття
00:34 - Важливість виконання вправ
02:41 - АЛГОРИТМИ
04:50 - Що важливо знати про алгоритми?
06:34 - Часова складність (Time Complexity)
08:14 - Чому сортування?
08:48 - Розбираємо алгоритм сортування на картах
13:55 - Реалізовуємо сортування вставками (Insertion sort)
20:18 - Порівнюємо з сортуванням бульбашкою
24:07 - Для чого порівнювати алгоритми?
25:45 - На що варто звернути увагу?
29:07 - Для чого це мені?
#opensource #java #education
👉 Навчання від Bobocode: bit.ly/3IRrJhj
Спасибо тебе друг! Ты очень сильный препод. Храни тебя и твоих близких Бог!
Merge sort!)))) Це назавжди зі мною)
Большое спасибо за курс. Помогает отвлечься от новостей.
Велике дякую за відкриті відео
Розумію що урок не про це, але від себе як "експерта бульбашкового сортування" :) хочу відзначити. Якщо у вкладеному циклі не відбулось жодної перестановки, то це означає що массив відсортован і ми прериваємо сортування. Тому при одразу відсортованому массиві буде лише один прохід, і складність O(n). Дякую за лекції!
Дякую!
ДЗ:
1. Реалізувати сортування вставкою (Insertion sort)
2. Реалізувати сортування бульбашкою (Bubble sort)
3. Реалізувати сортування злиттям (Merge sort)
4. Порівняти алгоритми
5. Перевірити час виконня кожного алгоритму на великому об`ємі даних (50K+ елементів)
Sorting an array of 500000 elements:
insertionSort: iterations 62372444885, time: 17388 ms
bubbleSort: iterations: 125000103930, time: 334006 ms
mergeSort: iterations: 10475711, time: 64 ms
Дякую, що надали завдання у відкритий доступ!
Чудовий урок! В мене як завжди є довгий коментар для промоуту каналу ;)
1. Є ще одна чудова властивість алгоритмів - чи можна їх розпаралелити? Приклад зі стрімом дуже крутий. Merge sort можна паралелити, з іншими є нюанси
2. CPU і RAM є обмеженими ресурсами. Але вони не впливають на алгоритм. Можуть впливати на вибір того чи іншого алгоритму, але це вже інженерія
3. Big O може добряче стрільнути в ногу. Особливо якщо ви вирішили використати LinkedList замість ArrayList у Java, бо під задачу ніби так ефективніше - ніт. Інженерія вам цього не пробачить) нажаль, тільки бенчмарки
Великий респект за приклад з картами - дуже наглядно!
А от код на циклах з массивом дуже тяжко читати. Якщо переписати їх на Linked List (самописний, або std), то вони читатимуться простіше, бо будуть набагато ближчими до прикладу з картами.
Дякую за контент, понастальгував за універом)
Дякую за коментар. 🙂
Thanks.
Дякую!
Кажуть Алгоритми формують problem solving skill
немов згадав алгоритми які проходив в університеті на кафедрі ПЗ.
Не зовсім зрозумів про Спейс комплексіті, в цих алгоритмах воно наче однакове. Про яке створення другого масиву йде мова?
В цих однакове. Як приклад, в сортуванні злиттям інакше - там створюються нові масиви.
@@Bobocode Зрозуміло, дякую за відповідь