Сравнете линейното и двоичното търсене, след което експериментирайте с пет алгоритъма за сортиране. Проследете всяка операция, наблюдавайте псевдокода и анализирайте сложността.
Линейното търсене проверява последователно всеки елемент, докато намери търсената стойност. Сравнете го с двоичното търсене използва стратегия „разделяй и владей“ върху сортиран масив за бързо намиране на стойност..
Сравнете линейното и двоичното търсене. Въведете стойности, изберете алгоритъм и проследете стъпките.
Последна стъпка: —
Псевдокод
обход за i от 0 до n
връщане на индекса при съвпадение
върни -1 при липса
Разбиране на линейното обхождане • Оценка на сложността O(n) • Сравнение с двоично търсене
Разделяне на диапазона наполовина • Обработка на среден индекс • Сравнение с линейно търсене
Сравнение на основните алгоритми за сортиране: балонно, избор, вмъкване, сливане и бързо сортиране.
Повтарящ се алгоритъм, който сравнява съседни елементи и ги разменя при нужда, докато масивът се подреди.
Стъпка: Очаква старт
Сложност (средна): O(n^2) | Най-лош случай: O(n^2)
Псевдокод
сравни съседни елементи
ако са в грешен ред → размени
обнови индекса на минималния елемент
премести елемент надясно за освобождаване
вмъкни ключовия елемент
раздели масива на две части
сливане на подмасиви
избери пивот
раздели елементи около пивота
постави пивота на място
резултат: подреден масив
Проследяване на итерациите.
Повтарящи се сравнения и размени на съседни елементи. Лесно за разбиране, но бавно при големи масиви.
Разбиране на избора на минимум.
Намира се минималният елемент и се поставя в началото, след което процесът продължава за останалите.
Наблюдение на сравнението за вмъкване.
Изгражда се сортирана част чрез вмъкване на всеки следващ елемент на правилното място.
Проследяване на рекурсивните извиквания.
Рекурсивно разделяне на масива и сливане на подредени подмасиви. Сложност O(n log n).
Разбиране на избор на пивот и подразделяне.
Избира се пивот, разделя се масивът на по-малки и по-големи елементи и се сортират рекурсивно.
Quick Sort (TypeScript)
Quick Sort (C#)
Тествайте знанията си по темата. Отговорете на всички въпроси и натиснете „Провери“.
Въпрос 1: Какво връща линейното търсене при ненамерен елемент?
Въпрос 2: Как калкулираме сложността?
Тествайте знанията си по темата. Отговорете на всички въпроси и натиснете „Провери“.
Въпрос 1: Кой алгоритъм е стабилен по подразбиране?
Въпрос 2: Кой алгоритъм има най-добра средна сложност?
Въпрос 3: Какво е предимство на quick sort?
Предстоящи теми
TODO: Добавяне на визуализации за BFS и DFS върху графи.