Menu
Coddy logo textTech
Ścieżka nauki

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

Algorytmy i struktury danych w Go krok po kroku

38 kursy377 lekcje228 wyzwania702 pytania quizowe

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.

  1. 1
    Zacznij ten krokZacznijStos, kolejka, drzewo binarne, tablica mieszająca i lista wiązana, każda struktura zbudowana od zera w Go, a potem użyta do rozwiązywania zadań. Po tym kroku slice użyty jako stos i mapa użyta jako zbiór to wybory, których potrafisz bronić, a typ kolejki, którego Go nie ma, to kod, który znasz od środka.Zacznij
  2. 2
    Zacznij ten krokZacznijLista dwukierunkowa, kopce i kolejki priorytetowe, drzewa trie, grafy i samorównoważące się drzewo AVL. container/list to pierwsza z nich, gotowa do użycia. Po tym kroku pięć metod heap.Interface ma sens, bo kopiec masz już za sobą, a zrównoważone drzewo, którego Go nigdy nie dostarczył, to coś, co potrafisz zbudować.Zacznij
  3. 3
    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.Slice od Go 1.19 używa pattern-defeating quicksort, slices.Sort też, i żadne z nich nie jest stabilne, dlatego istnieje sort.SliceStable. Po tym kroku wiesz, co znaczy każde z tych słów.Zacznij
  4. 4
    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
  5. 5
    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 Go container/heap na slice'ie własnego typu: kopiec z kroku drugiego ukryty za interfejsem.Zacznij
  6. 6
Co dostajesz
Wszystko, czego potrzebujesz do nauki programowania

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.

playground.js
Edytor kodu
1const greeting = "Hello, Coddy!"
2function sayHi(name) {
3    return greeting + " " + name
4}
5
bottombar Collapse icon
Test #1test Case Success icon
Test #2test Case Success icon
Test #3test Case Failure icon
Dane wejściowe
"Alex"
Wynik
"Hello, Coddy! Alex"

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ę!

fire Filled icon
left icon

January 2026

right icon

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

product Double Or Nothing icon

Podwójnie albo nic

Dzień 5 z 7

fire Freeze icon

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.

Python
7Seria
250Wynik
5Energia
Zmienne
journey Hex Done Base iconjourney Hex Done Shadow iconjourney Hex Done Top iconjourney Lesson Done icon
journey Path Right Done icon
journey Hex Done Base iconjourney Hex Done Shadow iconjourney Hex Done Top iconjourney Lesson Done icon
journey Path Left Done icon
journey Hex Active Base iconjourney Hex Active Shadow iconjourney Hex Active Top iconjourney Lesson Theory Challenge icon
KONTYNUUJ
journey Path Right icon
journey Hex Locked Base iconjourney Hex Locked Shadow iconjourney Hex Locked Top iconjourney Lesson Theory Challenge icon
journey Path Left icon
journey Hex Locked Base iconjourney Hex Locked Shadow iconjourney Hex Locked Top iconjourney Lesson All icon
Ścieżka
Cele
Ranking
Profil
4.9
GwiazdkaGwiazdkaGwiazdkaGwiazdkaGwiazdka
Ocena

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!

Liga Challenger
Liga ChallengerAwansuje 7 najlepszych
leaderboard First icon1
avatar 1 icon
fire Filled icon
Alex7+ Days
2840
leaderboard Second icon2
avatar 2 icon
fire Filled icon
Jordan7+ Days
2650
leaderboard Third icon3
avatar 3 icon
fire Filled icon
Sam7+ Days
2420
4
avatar 4 icon
Casey
2180
5
avatar placeholder icon
fire Filled icon
Morgan7+ Days
1950
leaderboard Arrow Up iconStrefa awansuleaderboard Arrow Up icon

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.

Wprowadzenie do zmiennych
Audio

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ść.

1xZofia

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.

CoddyCertyfikat ukończenia
Certyfikat dlaJan Kowalskiza pomyślne ukończenie kursu
python iconPodstawy Pythona
Zweryfikowano
Datasty 2026
LinkedInDodaj do LinkedIn

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 append i który przycinasz, zbiór to map[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 struct ze 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 ma malloc ani free do 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?

Tak. Kompiluje się do szybkiego kodu natywnego, jego składnia jest na tyle mała, że czytasz głównie sam algorytm, a typy generyczne (od Go 1.18) pozwalają wielokrotnie używać typowanego stosu czy kopca. Ceną jest oszczędna biblioteka standardowa: poza slice'ami, mapami, 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?

Slice to tablica dynamiczna, a z 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?

Implementujesz 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ść?

Bo Go celowo losuje kolejność iteracji po mapie, żeby żaden program nie zaczął od niej zależeć. Tablica mieszająca w żadnym języku nie ma znaczącej kolejności, Go po prostu dba o to, żeby było to widać. Gdy kolejność ma znaczenie, na przykład w wyniku porównywanym przez test, zbierz klucze do slice'a i go posortuj albo trzymaj slice obok mapy.

Które kursy z tej ścieżki nie są prowadzone w Go?

Trzy: programowanie dynamiczne i seria rekrutacyjna w Pythonie, prowadzone w Pythonie, oraz operacje na bitach, prowadzone w C++. Są wymienione po krokach, każdy z linkiem, który otwiera go w jego własnym języku. Tablica memoizacji w Go to slice albo mapa, a Go dodaje jeden operator bitowy, którego brakuje w C++: &^, AND NOT, który zeruje w lewym operandzie każdy bit ustawiony w prawym.

Czy muszę znać Go, zanim zacznę tę ścieżkę?

Przynajmniej struktury, wskaźniki, slice'y, mapy i metody. Typy generyczne pomagają, a poznasz je po drodze. Jeśli to dla ciebie nowość, kurs Go w Coddy najpierw cię tam doprowadzi, za darmo, a ta ścieżka zaczyna się tam, gdzie on się kończy.

Inne ścieżki nauki

Te same kursy, ułożone pod inną rolę. Postępy się przenoszą: kurs ukończony na jednej ścieżce liczy się na każdej ścieżce, która go zawiera.

Wszystkie ścieżki nauki
Ilustracja języków programowania w Coddy

Zacznij ścieżkę Algorytmy i struktury danych za darmo

Zacznij naukę