Тёмный

Złożoność obliczeniowa - notacja duże O 

SephCode
Подписаться 804
Просмотров 5 тыс.
50% 1

Tym razem opowiadam o złożoności obliczeniowej w informatyce. Notacja duże O to coś co powinna znać każda osoba mająca styczność z programowaniem. Czy da się żyć bez tej wiedzy - tak. Ale co by to było, gdyby na każdym kroku używać tylko jednej struktury danych? Czy nasze programy i aplikacje były by dostatecznie szybkie? A może nie warto się tym przejmować, niech sobie komputer liczy.
W filmie zastosowałem pewien skrót myślowy którego nie wyjaśniłem. Często mówię "logarytm naturalny", przy czym zapis "log n" ma oznaczać logarytm przy podstawie 2 z n. Moja wina, wybaczcie, tak czy inaczej, różnica jest niewielka.

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

 

15 сен 2024

Поделиться:

Ссылка:

Скачать:

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

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 5   
@JakTakToNie
@JakTakToNie Год назад
rozumiem, że 1n - to jedna operacja, a czy możesz zdefiniować czym jest operacja?
@sephcode
@sephcode Год назад
TL;DR; Zazwyczaj algorytmy działają w pętli, więc jedna operacja to będzie jeden przebieg pętli. Bardzo łatwo w ten sposób wyjaśnić skąd n^2 w bubble sorcie (pętla w pętli). Bardziej szczegółowe wyjasnienie poniżej: Jedna operacja będzie miała różne znaczenie w zależności od tego co robi (czy może jaki zestaw instrukcji powtarza) dany algorytm. Spróbujmy zdefiniować operację dla kilku przykładów: 1. Wybranie losowego elementu z tablicy Tutaj operacją nazwiemy przesunięcie wskaźnika względem znanego początku tablicy. Żeby wybrać element potrzebujemy jego indeks, rozmiar pojedynczego elementu w tablicy i dalej mamy jedno proste mnożenie (indeks * rozmiar) + adres początku tablicy i mamy znaleziony nasz element. 2. Wyszukanie elementu w liście Tutaj jedna operacja to będzie przejście do kolejnego elementu i porównanie z wyszukiwanym. W pseudokodzie wyglądało by to tak: iterator.nastepny_element() if *iterator == szukany_element: return true 3. Sortowanie: Tutaj jedna operacja to zamiana miejscami dwóch elementów, w praktyce to tak na prawdę 3 operacje przypisania. Przykładowo, chcemy zamienić miejscami A i B. Potrzebujemy do tego zmiennej pomocniczej C która chwilowo przetrzyma wartość A (lub B). C = A; A = B; B = C; Mamy 3 znaki równości czyli 3 przypisania (3 operacje zmiany wartości) ale traktujemy to jako jedną operację ponieważ stała 3 tutaj nic nie zmienia. W O(x) chodzi o rząd wielkości, nie o czas / skomplikowanie pojedynczej operacji.
@xoy5
@xoy5 4 месяца назад
fajnie mega dzieki ziomke robie sobie leetcode i sie przydaje bo w szkole ta cweloza niczego nie uczy sam na wlasna reka wszystko bo inaczej by byla padaka i bym zostal conajwyzej proboszczem w mojej parafii a nie programista wielkie dzieki ziomus
@deiling5034
@deiling5034 Год назад
Czy tu nie ma głosu?
@sephcode
@sephcode Год назад
Jest
Далее
Czym jest złożoność obliczeniowa?
7:22
Просмотров 14 тыс.
9월 15일 💙
1:23:23
Просмотров 1,1 млн
Big-O Notation - For Coding Interviews
20:38
Просмотров 469 тыс.
Podstawy kryptografii w 12 min.
11:39
Просмотров 23 тыс.
Czym jest Blockchain
8:46
Просмотров 328
Big O Notation - Code Examples
15:18
Просмотров 106 тыс.
Złożoność obliczeniowa cz.1
16:07
Просмотров 9 тыс.
Podstawowe usługi chmurowe
12:38
Просмотров 887
Big-O notation in 5 minutes
5:13
Просмотров 1,1 млн
Czym jest Chmura?
7:53
Просмотров 3,2 тыс.
STL 5: Złożoność obliczeniowa - Podsumowanie
5:19