Menu
Coddy logo textTech
Ścieżka nauki

Algorytmy i struktury danych w C#

Kolekcje generyczne C# zawierają już większość tej ścieżki: Stack<T>, Queue<T>, Dictionary<TKey,TValue>, LinkedList<T> i SortedSet<T> to stos, kolejka, tablica mieszająca, lista dwukierunkowa i zrównoważone drzewo poszukiwań. Zbuduj każdą strukturę samodzielnie w C#, potem sortuj, stosuj rekurencję i przeszukuj z nimi grafy, a na koniec zmierz się z ocenianymi zadaniami rekrutacyjnymi. Za darmo, w przeglądarce, z certyfikatem w większości kursów.

377 lekcje228 wyzwania702 pytania quizowe

Algorytmy i struktury danych w C# 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 C#. Trzy kursy, które nie są jeszcze prowadzone w C#, 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 C#, a potem użyta do rozwiązywania zadań. Po tym kroku Stack<T>, Queue<T> i Dictionary<TKey,TValue> to struktury, których kod już znasz, i wiesz, ile kosztuje każde ich wywołanie.Zacznij
  2. 2
    Zacznij ten krokZacznijLista dwukierunkowa, kopce i kolejki priorytetowe, drzewa trie, grafy i samorównoważące się drzewo AVL. LinkedList<T> to pierwsza z nich, gotowa do użycia. Po tym kroku SortedSet<T> to zrównoważone drzewo, które rozumiesz, czerwono-czarne tam, gdzie twoje jest AVL, a kopiec to coś, co potrafisz napisać w każdej wersji .NET.Zacznij
  3. 3
    Zacznij ten krokZacznijSortowanie bąbelkowe, przez wybieranie, przez wstawianie, przez scalanie, szybkie, przez kopcowanie, przez zliczanie i pozycyjne, napisane w C# i oglądane w wizualizatorze. Array.Sort i List<T>.Sort to introsort, czyli quicksort wspierany przez heapsort i sortowanie przez wstawianie, i są niestabilne, a OrderBy z LINQ jest stabilne. Po tym kroku wiesz dlaczego.Zacznij
  4. 4
    Zacznij ten krokZacznijWyzwania z rekurencji w C#, oceniane przez testy jak każda lekcja. W .NET rekurencja, która nigdy nie dochodzi do przypadku bazowego, kończy się wyjątkiem StackOverflowException, którego nie da się przechwycić, więc każda metoda rekurencyjna przede wszystkim potrzebuje warunku wyjścia. 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 C#, na grafie zbudowanym w kroku drugim. Algorytm Dijkstry potrzebuje kolejki priorytetowej, a C# dostał ją dopiero w .NET 6, więc warto znać kopiec z kroku drugiego.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 C# z Coddy

  • Wiesz, ile kosztuje każda kolekcja. List<T> to tablica dynamiczna, więc Insert(0, x) przesuwa każdy element za nim. Dictionary<TKey,TValue> to tablica mieszająca, średnio o stałym czasie i dokładnie tak dobra, jak GetHashCode twoich kluczy. Samodzielne budowanie struktur sprawia, że te fakty przestają być ciekawostkami i zaczynają decydować o tym, którą kolekcję wybierasz.
  • Język Unity i .NET. W C# pisze się skrypty gier w Unity, a ogromna część oprogramowania firmowego działa na .NET. Oba światy opierają się na tych samych strukturach. Mapa kafelków to graf, wyznaczanie ścieżki to przeszukiwanie grafu, a kolejność tur czy harmonogram zdarzeń to kolejka priorytetowa, więc algorytm i baza kodu mówią tym samym językiem.
  • Prawie cała ścieżka w C#. Każda struktura danych, sortowanie, algorytm grafowy, wyzwanie z rekurencji i pakiet rekrutacyjny jest prowadzony w C#. 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 najłatwiej śledzić z perspektywy C#, który zapisuje operatory bitowe tymi samymi symbolami co C++.
  • Oceniane jak na rozmowie rekrutacyjnej. Każda lekcja kończy się wyzwaniem w C# 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 C#

Czy C# nadaje się do nauki algorytmów i struktur danych?

Tak. Czyta się go podobnie jak Javę: typy sprawiają, że każdy węzeł, referencja i parametr generyczny są jawne, a System.Collections.Generic obejmuje większość struktur z tej ścieżki. Warto wcześnie wyrobić sobie dwa nawyki. LINQ jest zwięzły, ale każde OrderBy to sortowanie, a każde Where to pętla, więc ukrywa koszty, których liczenia się uczysz. Z kolei Array.Sort jest niestabilne, co ma znaczenie zawsze, gdy równe klucze muszą zachować kolejność.

Które kolekcje .NET odpowiadają którym strukturom danych?

List<T> to tablica dynamiczna, Stack<T> i Queue<T> są oparte na tablicach, LinkedList<T> to lista dwukierunkowa, Dictionary<TKey,TValue> i HashSet<T> to tablice mieszające, a SortedDictionary<TKey,TValue> i SortedSet<T> to drzewa czerwono-czarne, zrównoważone jak drzewo AVL budowane w kroku drugim. SortedList<TKey,TValue> to para tablic utrzymywanych w kolejności kluczy, a od .NET 6 PriorityQueue<TElement,TPriority> to kopiec minimalny oparty na tablicy. Nie ma klasy dla drzewa trie ani grafu, te trzeba napisać samodzielnie.

Czy węzeł drzewa albo listy w C# powinien być klasą, czy strukturą?

Klasą. struct to typ wartościowy: w ogóle nie może zawierać pola własnego typu, a gdziekolwiek zostanie skopiowany, zmiana kopii nie wpływa na oryginał. Instancja klasy jest referencją, więc węzły mogą wskazywać na siebie nawzajem, tak jak wymaga tego lista wiązana czy drzewo. Struktury zostaw dla małych wartości, takich jak współrzędne na siatce czy krawędź z wagą.

Czy C# ma kolejkę priorytetową?

Od .NET 6 tak: PriorityQueue<TElement,TPriority>, kopiec minimalny oparty na tablicy, w którym każdy element trafia do kolejki z własnym priorytetem. Żeby uzyskać kopiec maksymalny, przekaż IComparer<TPriority> odwracający kolejność. .NET Framework i starsze środowiska nie mają żadnej, dlatego programiści C# długo pisali własny kopiec albo naginali do tej roli SortedSet<T>, i dlatego umiejętność napisania go wciąż się liczy. Robisz to w kroku drugim.

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

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 C# to tablica albo Dictionary, a sztuczki bitowe przenoszą się bez problemu, łącznie z rozróżnieniem, które robi C++: >> zachowuje znak w int i wypełnia zerami w uint.

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

Przynajmniej klasy, metody, tablice, pętle i kolekcje generyczne, takie jak List<T>. Jeśli to dla ciebie nowość, kurs C# 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ę