Odległość Levenshteina

Dzisiejszy artykuł przyda się nie tylko programistom PHP. Myślę, że informacje w nim zawarte będą pomocne i dla pozostałych programistów :). Postanowiłem opisać algorytm Levenshteina. Czytaj dalej

Programowanie dynamiczne

Po dłuższej przerwie w pisaniu artykułów związanej z nadmiarem pracy i nauki zaprezentuję jedną z podstawowych technik optymalizacji algorytmów wykorzystujących rekurencję. Programowanie dynamiczne (bo o nim mowa) umożliwia znaczne przyspieszenie rozwiązywania problemów wymagających dużej ilości wywołań funkcji rekurencyjnej.
Czytaj dalej

Algorytmy sortujące – cz. II

W drugiej części cyklu artykułów o algorytmach sortowania przedstawię dwa nieco bardziej zaawansowane algorytmy: sortowanie przez scalanie i sortowanie szybkie oparte na metodzie dziel i zwyciężaj.
Czytaj dalej

Algorytmy sortujące – cz. I

Sortowanie jest jedną z najbardziej istotnych funkcji w różnego rodzaju systemach informatycznych – również w aplikacjach internetowych, gdzie często jest wymagany określony porządek danych wyświetlanych użytkownikowi. Mimo, że istnieje wbudowana funkcja sort() wykorzystująca algorytm quicksort warto znać inne algorytmy rozwiązujące ten problem. W cyklu artykułów przedstawię kilka najbardziej znanych i najczęściej używanych algorytmów sortowania. Na początek zaprezentuję najprostsze algorytmy o złożoności czasowej O(n2). W kolejnych częściach omówię bardziej rozbudowane algorytmy o mniejszej złożoności, aż dojdziemy do sposobów sortowania o złożoności czasowej O(n).
Czytaj dalej