Skip to content

Latest commit

 

History

History
284 lines (244 loc) · 19.6 KB

README.pl-PL.md

File metadata and controls

284 lines (244 loc) · 19.6 KB

JavaScript Algorytmy i Struktury Danych

Build Statuscodecov

To repozytorium zawiera wiele przykładów JavaScript opartych na znanych algorytmach i strukturach danych.

Każdy algorytm i struktura danych zawiera osobny plik README wraz z powiązanymi wyjaśnieniami i odnośnikami do dalszego czytania (włącznie z tymi do YouTube videos).

Read this in other languages:English简体中文, 繁體中文, 한국어, 日本語, Français, Español, Português

Struktury Danych

Struktura danych to sposób uporządkowania i przechowywania informacji w komputerze żeby mogłaby być sprawnie dostępna i efektywnie zmodyfikowana. Dokładniej, struktura danych jest zbiorem wartości danych, relacjami pomiędzy nimi, zadaniami lub działaniami, które mogą dotyczyć danych.

B - Początkujący, A - Zaawansowany

Algorytmy

Algorytm jest to skończony ciąg jasno zdefiniowanych czynności, koniecznych do wykonania pewnego rodzaju zadań. Sposób postępowania prowadzący do rozwiązania problemu.

B - Początkujący, A - Zaawansowany

Algorytmy według tematu

Algorytmy według paradygmatu

Paradygmat algorytmiczny jest ogólną metodą lub podejściem, które jest podstawą projektowania klasy algorytmów. Jest abstrakcją wyższą niż pojęcie algorytmu, podobnie jak algorytm jest abstrakcją wyższą niż program komputerowy.

Jak używać repozytorium

Zainstaluj wszystkie zależnosci

npm install 

Uruchom ESLint

Możesz to uruchomić aby sprawdzić jakość kodu.

npm run lint 

Uruchom wszystkie testy

npm test 

Uruchom testy używając określonej nazwy

npm test -- 'LinkedList' 

Playground

Możesz pociwiczyć ze strukturą danych i algorytmami w ./src/playground/playground.js zakartotekuj i napisz testy do tego w ./src/playground/__test__/playground.test.js.

Następnie uruchom następującą komendę w celu przetestowania czy twoje kod działa według oczekiwań:

npm test -- 'playground' 

Pomocne informacje

Źródła

â–¶ Struktury Danych i Algorytmy na YouTube

Big O Notacja

Kolejność wzrastania algorytmów według Big O notacji.

Big O grafy

Źródło: Big O Cheat Sheet.

Poniżej umieszczamy listę najbardziej używanych Big O notacji i ich porównania wydajności do róznych rozmiarów z wprowadzonych danych.

Big O notacjaObliczenia na 10 elementówObliczenia na 100 elementówObliczenia na 1000 elementów
O(1)111
O(log N)369
O(N)101001000
O(N log N)306009000
O(N^2)100100001000000
O(2^N)10241.26e+291.07e+301
O(N!)36288009.3e+1574.02e+2567

Złożoność operacji struktury danych

Struktura DanychDostępSzukajUmieszczanieUsuwanieKomentarze
Szereg1nnn
Stertann11
Kolejkann11
Lista Powiązanann11
Tablica funkcji mieszanej-nnnW wypadku idealnej funkcji skrótu koszt mógłby sie równać O(1)
Binarne Drzewo PoszukiwańnnnnW przypadku zrównoważonych kosztów drzew byłoby O(log(n))
B-Drzewolog(n)log(n)log(n)log(n)
Drzewa czerwono-czarnelog(n)log(n)log(n)log(n)
AVL Drzewolog(n)log(n)log(n)log(n)
Filtr Blooma-11-Fałszywe dotatnie są możliwe podczas wyszukiwania

Sortowanie Tablic Złożoności Algorytmów

NazwaNajlepszyŚredniNajgorszyPamięćStabilnośćKomentarze
Sortowanie bąbelkowenn2n21Yes
Sortowanie przez wstawianienn2n21Yes
Sortowanie przez wybieranien2n2n21No
Sortowanie przez kopcowanien log(n)n log(n)n log(n)1No
Sortowanie przez scalanien log(n)n log(n)n log(n)nYes
Szybkie sortowanien log(n)n log(n)n2log(n)NoSzybkie sortowanie jest zazwyczaj robione w miejsce O(log(n)) stosu przestrzeni
Sortowanie Shellan log(n)zależy od luki w układzien (log(n))21No
Sortowanie przez zliczanien + rn + rn + rn + rYesr - największy numer w tablicy
Sortowanie Radixn * kn * kn * kn + kYesk -długość najdłuższego klucza
close