Algorytmy i struktury danych w Go
Go daje ci slice'y i mapy, a resztę zostawia tobie: nie ma typu stosu, kolejki ani zbioru, a kopiec w container/heap nic nie robi, dopóki nie zaimplementujesz heap.Interface. W tej ścieżce budujesz każdą strukturę w Go za pomocą struktur i wskaźników, potem sortujesz, stosujesz rekurencję i przeszukujesz z nimi grafy, a na koniec rozwiązujesz oceniane zadania rekrutacyjne. Za darmo, w przeglądarce, z certyfikatem w większości kursów.
377 lekcje228 wyzwania702 pytania quizowe
- Dla początkujących
Pomoc AI przy programowaniu
Praktyczne, interaktywne lekcje
Narracja audio w każdej lekcji
Quizy sprawdzające wiedzę
Darmowe certyfikaty na tej ścieżce: 23
Algorytmy i struktury danych w Go krok po kroku
Każdy krok to zestaw istniejących kursów Coddy, a każdy przycisk Start otwiera je w Go. Trzy kursy, które nie są jeszcze prowadzone w Go, są wymienione po krokach.
- 1Krok 1Kursy po kolei: 5
- 2Krok 2
Seria Struktury danych, część druga
Zacznij ten krokZacznijLista dwukierunkowa, kopce i kolejki priorytetowe, drzewa trie, grafy i samorównoważące się drzewo AVL.container/listto pierwsza z nich, gotowa do użycia. Po tym kroku pięć metodheap.Interfacema sens, bo kopiec masz już za sobą, a zrównoważone drzewo, którego Go nigdy nie dostarczył, to coś, co potrafisz zbudować.ZacznijKursy po kolei: 5- Lista dwukierunkowa – struktury danych, część 614 lekcje6 wyzwania
- Kopce i kolejki priorytetowe — struktury danych, część 714 lekcje6 wyzwania
- Drzewa Trie — struktury danych #814 lekcje12 wyzwania
- Grafy – struktury danych, seria nr 914 lekcje12 wyzwania
- Drzewo AVL – struktury danych, seria #1016 lekcje6 wyzwania
- 3Krok 3
Algorytmy sortowania
Zacznij ten krokZacznijSortowanie bąbelkowe, przez wybieranie, przez wstawianie, przez scalanie, szybkie, przez kopcowanie, przez zliczanie i pozycyjne, napisane w Go i oglądane w wizualizatorze.sort.Sliceod Go 1.19 używa pattern-defeating quicksort,slices.Sortteż, i żadne z nich nie jest stabilne, dlatego istniejesort.SliceStable. Po tym kroku wiesz, co znaczy każde z tych słów.ZacznijKursy po kolei: 8- Sortowanie bąbelkowe11 lekcje10 wyzwania
- Sortowanie przez wybieranie – seria DSA9 lekcje3 wyzwania54 pytania
- Sortowanie przez wstawianie – seria DSA9 lekcje3 wyzwania
- Sortowanie przez scalanie – seria DSA9 lekcje3 wyzwania52 pytania
- Sortowanie szybkie — seria DSA9 lekcje3 wyzwania52 pytania
- Sortowanie przez kopcowanie — seria DSA9 lekcje3 wyzwania54 pytania
- Sortowanie przez zliczanie – seria DSA9 lekcje3 wyzwania52 pytania
- Sortowanie radixowe — seria DSA9 lekcje3 wyzwania55 pytania
- 4Krok 4
Myślenie rekurencyjneOsobna strona
Zacznij ten krokZacznijWyzwania z rekurencji w Go, gdzie stosy gorutyn zaczynają się małe i rosną w miarę potrzeby, więc rekurencja głęboka na tysiące wywołań rzadko przepełnia stos. Brakujący przypadek bazowy i tak dochodzi do sufitu, domyślnie 1 GB stosu w systemach 64-bitowych, i kończy się błędem krytycznym zamiast powolnym programem. Programowanie dynamiczne i operacje na bitach są wymienione po krokach, bo prowadzi się je w Pythonie i C++.ZacznijOsobna strona - 5Krok 5
Algorytmy grafowe
Zacznij ten krokZacznijPrzeszukiwanie wszerz i w głąb, Dijkstra, Bellman-Ford, sortowanie topologiczne, Kruskal i Prim w Go, na grafie zbudowanym w kroku drugim. Kolejka priorytetowa w algorytmie Dijkstry to w Gocontainer/heapna slice'ie własnego typu: kopiec z kroku drugiego ukryty za interfejsem.ZacznijKursy po kolei: 7- Przeszukiwanie wszerz — algorytmy grafowe9 lekcje3 wyzwania54 pytania
- Przeszukiwanie w głąb — algorytmy grafowe9 lekcje3 wyzwania54 pytania
- Algorytm Dijkstry — algorytmy grafowe9 lekcje3 wyzwania54 pytania
- Algorytm Bellmana-Forda — algorytmy grafowe9 lekcje3 wyzwania54 pytania
- Sortowanie topologiczne – algorytmy grafowe9 lekcje3 wyzwania55 pytania
- Algorytm Kruskala — algorytmy grafowe9 lekcje3 wyzwania57 pytania
- Algorytm Prima – algorytmy grafowe9 lekcje3 wyzwania55 pytania
- 6Krok 6
Praktyka rekrutacyjna
Zacznij ten krokZacznijDziesięć pakietów wyzwań rekrutacyjnych i dwa banki zadań programistycznych w Go, oceniane przez testy: nieznane zadania rozwiązywane bez samouczka, ze slice'ami, mapami i strukturami zbudowanymi po drodze.ZacznijKursy po kolei: 12- Wyzwania programistyczne na rozmowę kwalifikacyjną – zestaw I3 lekcje3 wyzwania
- Wyzwania programistyczne na rozmowę kwalifikacyjną — pakiet II3 lekcje3 wyzwania
- Wyzwania programistyczne na rozmowy kwalifikacyjne — pakiet III3 lekcje3 wyzwania
- Zadania rekrutacyjne z programowania – pakiet IV3 lekcje3 wyzwania
- Zadania rekrutacyjne z programowania — pakiet V3 lekcje3 wyzwania
- Wyzwania programistyczne na rozmowę kwalifikacyjną – pakiet VI3 lekcje3 wyzwania
- Wyzwania programistyczne na rozmowę kwalifikacyjną — zestaw VII3 lekcje3 wyzwania
- Wyzwania programistyczne na rozmowę kwalifikacyjną – zestaw VIII3 lekcje3 wyzwania
- Wyzwania programistyczne na rozmowę kwalifikacyjną – pakiet IX3 lekcje3 wyzwania
- Wyzwania programistyczne na rozmowę kwalifikacyjną – X3 lekcje3 wyzwania
- Zadania programistyczne32 lekcje31 wyzwania
- Zadania programistyczne: Tom 225 lekcje24 wyzwania
Ucz się w praktyce
Pisz prawdziwy kod, odpytuj bazy danych, twórz strony internetowe i opanuj prompty AI. Nasze interaktywne lekcje obejmują wszystkie umiejętności, których potrzebuje współczesny programista.
Buduj swoją serię
Ucz się regularnie i patrz, jak rosną twoje postępy! Śledź codzienny nawyk programowania, chroń serię dzięki zamrożeniom i zdobywaj nagrody za każdy dzień nauki.
12 dni serii
Wróć jutro, aby utrzymać serię!
January 2026
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
21
22
23
24
25
26
27
28
29
30
Podwójnie albo nic
Dzień 5 z 7
Zamrożenie serii
2 left
Programuj wszędzie
Zabierz naukę programowania ze sobą! Bez konfiguracji i pobierania plików: po prostu otwórz i zacznij kodować. Dostępne na iOS, Androida i w przeglądarce, z oceną 4,9 gwiazdki.
Nie uczysz się w pojedynkę
Rywalizuj w globalnych rankingach, zapraszaj znajomych po nagrody i świętujcie wspólnie swoje sukcesy. Z przyjaciółmi programuje się lepiej!
Każdy sposób nauki
Czytaj, słuchaj, sprawdzaj się, pytaj AI albo wracaj do tego, co już znasz. Każda lekcja dopasowuje się do ciebie.
Zmienna to nazwany pojemnik przechowujący wartość, do której możesz później odwołać się w programie.
W Pythonie tworzysz ją, pisząc nazwę, znak równości, a potem wartość, którą chcesz zapisać.
Wartość może się zmieniać: ponowne przypisanie po prostu wskazuje nazwą nową wartość.
Zdobądź certyfikat
Zdobywaj certyfikaty za każdy ukończony kurs. Dodaj je do profilu na LinkedIn i CV, aby pokazać pracodawcom swoje umiejętności programistyczne.
Dlaczego warto uczyć się algorytmów w Go z Coddy
- Struktury, które Go zostawia tobie. Go ma wbudowane slice'y i mapy i na tym się kończy: stos to slice, do którego robisz
appendi który przycinasz, zbiór tomap[T]struct{}, a typu kolejki ani drzewa nie ma wcale. Umiejętność napisania brakujących struktur i wiedza, ile kosztuje każda operacja na slice'ie, to część znajomości Go. - Struktury i wskaźniki, nic ukrytego. Go nie ma klas: węzeł to
structze wskaźnikiem na następny, a metody są przypięte do typu. Lista wiązana czy drzewo wyglądają dokładnie tak, jak działają, typy generyczne (od Go 1.18) pozwalają użyć ich dla dowolnego typu elementów, a garbage collector sprawia, że nie mamallocanifreedo pilnowania. - Prawie cała ścieżka w Go. Każda struktura danych, sortowanie, algorytm grafowy, wyzwanie z rekurencji i pakiet rekrutacyjny jest prowadzony w Go. Trzy kursy są prowadzone w innych językach i wymienione po krokach, każdy z linkiem: programowanie dynamiczne i seria rekrutacyjna w Pythonie oraz operacje na bitach w C++. Operacje na bitach czyta się naturalnie z perspektywy Go, który ma te same
&,|,^,<<i>>co C++, a NOT zapisuje jako^x. - Oceniane jak na rozmowie rekrutacyjnej. Każda lekcja kończy się wyzwaniem w Go sprawdzanym przez testy, a gdy coś nie przechodzi, Bugsy czyta twój kod i naprowadza cię na poprawkę, nie podając gotowej odpowiedzi. Darmowy certyfikat w większości kursów, każdy do zweryfikowania pod własnym adresem URL.
Najczęstsze pytania o algorytmy i struktury danych w Go
Czy Go nadaje się do nauki algorytmów i struktur danych?
container/list i container/heap struktury piszesz samodzielnie, co na ścieżce nauki jest właśnie celem. Na Go działa też duża część dzisiejszej infrastruktury chmurowej, w tym Docker i Kubernetes, co czyni go naturalnym językiem na rozmowy na stanowiska backendowe.Które typy i pakiety Go odpowiadają którym strukturom danych?
append i przycinaniem także twój stos. Mapa to tablica mieszająca, a map[T]struct{} to idiomatyczny zbiór. container/list to lista dwukierunkowa, a container/heap obsługuje kopiec binarny na dowolnym typie implementującym heap.Interface. Nie ma typu kolejki, drzewa, drzewa trie ani grafu, więc te budujesz samodzielnie, w krokach pierwszym i drugim.Jak działa container/heap w Go?
container/heap w Go?heap.Interface na własnym typie slice'a: Len, Less i Swap z sort.Interface plus Push i Pop, które tylko dopisują element na końcu slice'a i go stamtąd usuwają. Potem wywołujesz funkcje pakietu heap.Push i heap.Pop, nigdy własne metody, a one przesuwają elementy w górę i w dół, utrzymując porządek. Wygląda to dziwnie, dopóki nie napiszesz kopca samodzielnie, co robisz w kroku drugim.Dlaczego iteracja po mapie w Go za każdym razem daje inną kolejność?
Które kursy z tej ścieżki nie są prowadzone w Go?
&^, AND NOT, który zeruje w lewym operandzie każdy bit ustawiony w prawym.