Releases: exz3ro/javascript-algorithms
Javascript Algorithms
JavaScript Algoritmalar ve Veri Yapıları
Bu repository popüler algoritmaların ve veri yapılarının birçoğunun Javascript tabanlı örneklerini bulundurur.
Her bir algoritma ve veri yapısı kendine
ait açıklama ve videoya sahip README dosyası içerir.
☝ Not, bu proje araştırma ve öğrenme amacı ile yapılmış
olup üretim için yapılmamıştır.
Veri Yapıları
Bir veri yapısı, verileri bir bilgisayarda organize etmenin ve depolamanın belirli bir yoludur, böylece
verimli bir şekilde erişilebilir ve değiştirilebilir. Daha iyi ifadeyle, bir veri yapısı bir veri koleksiyonudur,
aralarındaki ilişkiler, ve işlevler veya işlemler
veriye uygulanabilir.
B
- Başlangıç, A
- İleri Seviye
B
Bağlantılı Veri YapısıB
Çift Yönlü Bağlı ListeB
KuyrukB
YığınB
Hash TableB
Heap - max and min heap versionsB
Öncelikli KuyrukA
TrieA
AğaçA
İkili Arama AğaçlarıA
AVL TreeA
Red-Black TreeA
Segment Tree - with min/max/sum range queries examplesA
Fenwick Tree (Binary Indexed Tree)
A
Graph (both directed and undirected)A
Disjoint SetA
Bloom Filter
Algoritmalar
Bir algoritma, bir problem sınıfının nasıl çözüleceğine dair kesin bir tanımlamadır.
Bir işlem dizisini açık olarak tanımlayan kurallar dizisidir.
B
- Başlangıç, A
- İleri Seviye
Konusuna göre Algoritma
- Matematik
B
Bit Manipülasyonu - set/get/update/clear bits, multiplication/division by two, make negative etc.B
İkili Kayan Nokta - kayan noktalı sayıların ikilik sistemde gösterimi.B
FaktöriyelB
Fibonacci Sayısı - klasik ve kapalı-form versiyonlarıB
Asallık Testi (deneyerek bölüm metodu)B
Öklid Algoritması - En büyük ortak bölen hesaplama (EBOB)B
En küçük Ortak Kat (EKOK)B
Eratosten Kalburu - belirli bir sayıya kadarki asal sayıları bulmaB
Is Power of Two - sayı ikinin katı mı sorgusu (naive ve bitwise algoritmaları)B
Paskal ÜçgeniB
Karmaşık Sayılar - karmaşık sayılar ve karmaşık sayılar ile temel işlemlerB
Radyan & Derece - radyandan dereceye çeviri ve tersine çeviriB
Fast PoweringB
Horner's method - polinomal ifadelerin değerlendirilmesiB
Matrices - matrisler ve basit matris operasyonları (çarpım, tersçapraz, vb.)B
Euclidean Distance - iki nokta/vektör/matris arasındaki mesafeA
Tamsayı BölümüA
Karekök - Newton yöntemiA
Liu Hui π Algoritması - N-gons'a göre yaklaşık π hesabıA
Ayrık Fourier Dönüşümü - bir zaman fonksiyonunu (sinyal) içerdiği frekanslara ayırın
- Setler
B
Kartezyen Ürün - birden fazla kümenin çarpımıB
Fisher–Yates Shuffle - sonlu bir dizinin rastgele permütasyonuA
Power Set - all subsets of a set (bit düzeyinde ve geri izleme yöntemleri)A
Permütasyonlar(tekrarlı ve tekrarsız)A
Kombinasyonlar (tekrarlı ve tekrarsız)A
En Uzun Ortak Altdizi (LCS)A
En Uzun Artan AltdiziA
En Kısa Ortak Üst Sıra (SCS)A
Knapsack Problem - "0-1 sırt çantası problemi" ve "Sınırsız sırt çantası problemi"A
Maksimum Altdizi - "Kaba Kuvvet" ve "Dinamik Programlara" (Kadane'nin) versiyonuA
Kombinasyon Toplamı - belirli toplamı oluşturan tüm kombinasyonları bulun
- Metin
B
Hamming Mesafesi - sembollerin farklı olduğu konumların sayısıA
Levenshtein Mesafesi - iki sekans arasındaki minimum düzenleme mesafesiA
Knuth–Morris–Pratt Algoritması (KMP Algorithm) - altmetin araması (örüntü eşleme)A
Z Algoritması - altmetin araması (desen eşleştirme)A
Rabin Karp Algoritması - altmetin aramasıA
En Uzun Ortak Alt MetinA
Regular Expression Eşleme
- Aramalar
B
Doğrusal AramaB
Jump Search (ya da Block Search) - sıralı dizide aramaB
İkili Arama - sıralı dizide aramaB
Interpolation Search - tekdüze dağıtılmış sıralı dizide arama
- Sıralama
B
Bubble SortB
Selection SortB
Insertion SortB
Heap SortB
Merge SortB
Quicksort - in-place and non-in-place implementationsB
ShellsortB
Counting SortB
Radix Sort
- Bağlantılı Liste
- Ağaçlar
B
Depth-First Search (DFS)B
Breadth-First Search (BFS)
- Graphs
B
Depth-First Search (DFS)B
Breadth-First Search (BFS)B
Kruskal’s Algorithm - ağırlıklı yönlendirilmemiş grafik için Minimum Yayılma Ağacı'nı (MST) bulmaA
Dijkstra Algorithm - tek tepe noktasından tüm grafik köşelerine en kısa yolları bulmakA
Bellman-Ford Algorithm - tek tepe noktasından tüm grafik köşelerine en kısa yolları bulmakA
Floyd-Warshall Algorithm - tüm köşe çiftleri arasındaki en kısa yolları bulunA
Detect Cycle - hem yönlendirilmiş hem de yönlendirilmemiş grafikler için (DFS ve Ayrık Küme tabanlı sürümler)A
Prim’s Algorithm - ağırlıklı yönlendirilmemiş grafik için Minimum Yayılma Ağacı'nı (MST) bulmaA
Topological Sorting - DFS metoduA
Articulation Points - Tarjan's algoritması (DFS based)A
Bridges - DFS yöntemi ile algoritmaA
Eulerian Path and Eulerian Circuit - Fleury'nin algoritması - Her kenara tam olarak bir kez ulaşA
Hamiltonian Cycle - Her köşeyi tam olarak bir kez ziyaret etA
Strongly Connected Components - Kosaraju's algorithmA
Travelling Salesman Problem - her şehri ziyaret eden ve başlangıç şehrine geri dönen mümkün olan en kısa rota
- Kriptografi
B
Polynomial Hash - polinom temelinde dönen hash işleviB
Caesar Cipher - simple substitution cipher
- Makine Öğrenmesi
B
NanoNeuron - 7 simple JS functions that illustrate how machines can actually learn (forward/backward propagation)
- Kategoriye Ayrılmayanlar
B
Tower of HanoiB
Square Matrix Rotation - in-place algorithmB
Jump Game - backtracking, dynamic programming (top-down + bottom-up) and greedy examplesB
Unique Paths - backtracking, dynamic programming and Pascal's Triangle based examplesB
Rain Terraces - trappin...