Które algorytmy, których używamy codziennie, mają złożoność O (1), O (n log n) i O (log n)?
algorithm
time-complexity
Rachel
źródło
źródło
Odpowiedzi:
Jeśli potrzebujesz przykładów algorytmów / grup instrukcji ze złożonością czasową, jak podano w pytaniu, oto mała lista -
O(1)
czasO(n)
czasW skrócie, wszystkie algorytmy Brute Force lub Noob, które wymagają liniowości, są oparte na złożoności czasowej O (n)
O(log n)
czasO(n log n)
czasWspółczynnik „log n” jest wprowadzany poprzez uwzględnienie Dziel i rządź. Niektóre z tych algorytmów są najlepiej zoptymalizowane i często używane.
O(n^2)
czasTe algorytmy mają być mniej wydajnymi algorytmami, jeśli ich odpowiedniki O (nlogn) są obecne. Ogólnym zastosowaniem może być tutaj Brute Force.
źródło
O(log n)
listę tak, aby znajdowała się przedO(n)
listą, aby lista była uporządkowana od najlepszej do najgorszej. haha :)Prostym przykładem
O(1)
może byćreturn 23;
- niezależnie od danych wejściowych, to powróci w ustalonym, skończonym czasie.Typowym przykładem
O(N log N)
byłoby sortowanie tablicy wejściowej za pomocą dobrego algorytmu (np. Scalanie).Typowy przykład, jeśli
O(log N)
szukałby wartości w posortowanej tablicy wejściowej przez podział na pół.źródło
O (1) - większość procedur gotowania to O (1), co oznacza, że zajmuje to stałą ilość czasu, nawet jeśli jest więcej osób do gotowania (do pewnego stopnia, ponieważ może zabraknąć miejsca w garnku / patelniach) i trzeba podzielić gotowanie)
O (logn) - znajdowanie czegoś w książce telefonicznej. Pomyśl o wyszukiwaniu binarnym.
O (n) - czytanie książki, gdzie n to liczba stron. Jest to minimalny czas potrzebny na przeczytanie książki.
O (nlogn) - nie mogę od razu pomyśleć o czymś, co można by zrobić codziennie, czyli o nlogn ... chyba że posortujesz karty za pomocą scalania lub szybkiego sortowania!
źródło
Mogę zaoferować kilka ogólnych algorytmów ...
To byłyby intuicyjne odpowiedzi, ponieważ brzmi to jak zadanie domowe / pytanie typu wywiad. Jeśli szukasz czegoś bardziej konkretnego, jest to trochę trudniejsze, ponieważ ogół społeczeństwa nie miałby pojęcia o podstawowej implementacji (oczywiście oszczędzającej otwarte oprogramowanie) popularnej aplikacji, ani też pojęcie to nie odnosi się ogólnie do „aplikacji”
źródło
O (1): znalezienie najlepszego następnego ruchu w szachach (lub Go w tej kwestii). Ponieważ liczba stanów gry jest skończona, to tylko O (1) :-)
źródło
O(1)
nanosekundy, a ty na pewno wiesz, coO(1)
wydarzy się pierwsze ...Złożoność aplikacji nie jest mierzona i nie jest zapisywana w notacji duże-O. Przydatne jest tylko mierzenie złożoności algorytmów i porównywanie algorytmów w tej samej dziedzinie. Najprawdopodobniej gdy mówimy O (n), mamy na myśli „O (n) porównań ” lub „O (n) operacje arytmetyczne”. Oznacza to, że nie można porównywać żadnej pary algorytmów ani aplikacji.
źródło
O (1) - Usuwanie elementu z podwójnie połączonej listy. na przykład
źródło
Do swojej listy możesz dodać następujące algorytmy:
O(1)
- Określanie, czy liczba jest parzysta czy nieparzysta; Praca z HashMapO(logN)
- obliczanie x ^ N,O(N Log N)
- Najdłuższy ciąg narastającyźródło
O (n log n) jest słynnym górnym ograniczeniem szybkości sortowania dowolnego zbioru (przy założeniu standardowego i niezbyt równoległego modelu obliczeniowego).
źródło
0 (logn) -Wyszukiwanie binarne, element szczytowy w tablicy (może być więcej niż jeden pik) 0 (1) -in python obliczający długość listy lub łańcucha. Funkcja len () zajmuje 0 (1) czasu. Dostęp do elementu w tablicy zajmuje 0 (1) czasu. Operacja wypychania na stosie zajmuje 0 (1) czasu. 0 (nlogn) -Merge sort. sortowanie w Pythonie zajmuje nlogn czasu. więc kiedy używasz listname.sort (), zajmuje to nlogn czasu.
Uwaga - wyszukiwanie w tablicy skrótów czasami zajmuje więcej niż stały czas z powodu kolizji.
źródło
O (2 N )
O (2 N ) oznacza algorytm, którego wzrost podwaja się z każdym dodatkiem do zbioru danych wejściowych. Krzywa wzrostu funkcji O (2 N ) jest wykładnicza - zaczyna się bardzo płytko, a następnie rośnie błyskawicznie. Przykładem funkcji O (2 N ) jest rekurencyjne obliczanie liczb Fibonacciego:
źródło
Tower of Hanoi
byłby lepszym przykładem.