>> [Грає музика]
ДАГ Lloyd: Сортувати Вибір є алгоритм, який, як ви могли б очікувати,
сортує набір елементів.
І алгоритм відгук це крок за кроком набір
інструкцій для виконання завдання.
>> При виборі сортувати Основна ідея це,
знайти найменше несортоване елемент і додати його в кінці відсортованого списку.
Ефективно, що це робить збірки відсортований список, один елемент за один раз.
Порушення його до псевдокоді ми могли б стверджувати, цей алгоритм
як слід, не повторювати це, поки немає несортовані елементи залишаються.
Пошук через несортоване дані, щоб знайти найменше значення,
Потім поміняти найменше значення з Перший елемент невідсортоване частини.
>> Це може допомогти візуалізувати це, так що давайте поглянемо на це.
Так що це Я стверджую, що це несортоване масив а у мене
вказано його про те, що всі з елементів червоного кольору,
вони ще не сортуються.
Це повне несортоване частина масиву.
>> Отже, давайте по кроках Вибір роду сортувати цей масив.
Отже, ще раз, ми збираємося повторити ДН не несортовані елементи залишаються.
Ми збираємося Пошук по дані, щоб знайти найменше значення,
а потім обміняти цю величину з Перший елемент невідсортоване частини.
>> Зараз, знову ж таки, вся Масив є несортоване частину.
Всі червоних елементів несортоване.
Таким чином, ми шукати через і ми знаходимо найменше значення.
Ми почнемо з самого початку, ми йдемо до кінця,
ми знаходимо найменше значення, один.
Так от перша частина.
І тоді друга частина, поміняти це значення з перший елемент невідсортоване частини,
або перший елемент червоний.
>> У цьому випадку, було б п'ять, так що ми поміняти одного до п'яти.
Коли ми робимо це, ми можемо наочно побачити, що ми
переїхав з найменшим значенням елемента масиву, на самому початку.
Ефективно сортування цей елемент.
>> І таким чином ми можемо підтвердити, чи дійсно і держава, що один, сортується.
І тому ми будемо вказувати відсортований частина з нашого масиву, за забарвленням він блакитний.
>> Тепер ми просто повторити процес знову.
Ми шукаємо через несортованої частини масив, щоб знайти найменший елемент.
У цьому випадку, це два.
>> Ми поміняти, що з першого елемент невідсортоване частини.
У цьому випадку два також буває перший елемент невідсортоване частини.
Таким чином, ми поміняти два з себе, які насправді просто залишає дві
де він знаходиться, і це сортується.
Продовжуючи, ми шукаємо через знайти найменший елемент.
Це три.
Ми поміняти його з першим елемент, який є п'ять.
А тепер три сортується.
>> Ми знову шукати через, і ми знайти найменший елемент чотири.
Ми поміняти його з першим елементом несортоване частина, і в даний час чотири сортується.
>> Ми вважаємо, що це п'ять найменший елемент.
Ми поміняти його з першим елемент невідсортоване частини.
А тепер п`ять сортується.
>> І тоді, нарешті, наш несортоване частина складається
тільки з одного елемента, тому ми шукати через
і ми знаходимо, що шість це маленький, а насправді, єдиним елементом.
І тоді ми можемо стверджувати, що це сортується.
А тепер ми перейшли нашу масив від повного несортоване
в червоний, повністю упорядковано в синьому, за допомогою вибору роду.
>> Так що в гіршому випадку тут?
Ну в найгірше так, ми повинні дивитися за
всі елементи масиву в знайти найменше несортоване елемент,
і ми повинні повторити цей процес п раз.
Після того, як для кожного елемента масиву бо ми тільки в цьому алгоритмі,
Сортувати один елемент за раз.
>> Який найкращий сценарій?
Ну, це точно так само, вірно?
Ми насправді потрібно ще пройти через кожен елемент масиву
для того, щоб підтвердити, що він є, Справді, найменший елемент.
>> Таким чином, в гіршому разі виконання, ми доведеться повторити процес п раз,
один раз для кожного з п елементів.
І в кращому випадку, ми повинні зробити те ж саме.
>> Так згадуючи наш обчислювальна складність інструментів,
те, що ви думаєте, це найгірше Справа виконання для вибору роду?
Що ви вважаєте найкращим Справа виконання для вибору роду?
>> Ви здогадалися Big O н квадрат, і Великий Омега п квадраті?
Ви були б праві.
Ті, справді, в гіршому випадку і кращий випадок виконання
раз, для вибору роду.
>> Я Дуг Ллойд.
Це CS50.