świstak.codes
O programowaniu, informatyce i matematyce przystępnym językiem

dziel i zwyciężaj

Problem selekcji
Zdjęcie wygenerowane przez Canva AI.
Tekst napisany przez człowieka.

Szukanie największego lub najmniejszego elementu w zbiorze danych to jedno z najprostszych zadań algorytmicznych, które implementował zapewne każdy, kto miał styczność z programowaniem. Jednak co zrobić, gdy chcemy znaleźć drugi z kolei największy element? A może trzeci najmniejszy? Albo może po prostu k-ty element? Czy da się to zrobić bez wcześniejszego posortowania zbioru? Nazywamy to problemem selekcji i przyjrzymy się mu w tym artykule.

Czytaj więcej
Wieże Hanoi
Zdjęcie własnego autorstwa.
Tekst napisany przez człowieka.

Wieże Hanoi to dla większości ludzi na świecie prosta, drewniana zabawka dla dzieci. Natomiast dla studentów informatyki to nie raz jedno z najgorszych wspomnień z pierwszych lat studiów i nauki programowania. Jak to możliwe? Co jest w nich takiego strasznego? Przekonajmy się na własną rękę.

Czytaj więcej
Sortowanie, cz. 5 — „dziel i zwyciężaj”
Źródło zdjęcia: pxhere
Tekst napisany przez człowieka.

W poprzednich częściach serii opisywałem, w jaki sposób tworzyć algorytmy sortowania bazujące na tym, jak na co dzień sortujemy, oraz jak podejścia te można optymalizować. Jednak, jak mogłeś się przekonać, nie są to najszybsze rozwiązania, dlatego teraz przejdziemy do omawiania tych mniej oczywistych podejść do sortowania, które okazują się być wydajniejsze. Omówimy algorytmy, które bazują na metodzie „dziel i zwyciężaj”.

Czytaj więcej
Wyszukiwanie w listach
Oryginał zdjęcia: DFID – UK Department for International Development, CC BY 2.0 https://creativecommons.org/licenses/by/2.0, via Wikimedia Commons)
Tekst napisany przez człowieka.

Ponad pół roku temu napisałem serię artykułów poświęconych listom. Przedstawiałem tam zarówno tablice, listy tablicowe, jak i listy wiązane. Teraz naturalnie chciałbym przejść dalej z tego tematu do podstawowych algorytmów wykorzystujących listy — algorytmów wyszukiwania w listach.

Czytaj więcej