Szczegóły ebooka

Struktury danych i algorytmy w języku C#. Wykorzystaj potencjał C# do projektowania efektywnych aplikacji. Wydanie II

Struktury danych i algorytmy w języku C#. Wykorzystaj potencjał C# do projektowania efektywnych aplikacji. Wydanie II

Marcin Jamro

Ebook

Projektowanie aplikacji jest wymagającym zadaniem, zwłaszcza jeśli trzeba rozwiązywać złożone problemy. W takich przypadkach należy mieć na uwadze również wydajność kodu, aby program działał płynnie na urządzeniach o ograniczonych zasobach. Takie zadania bywają naprawdę trudne i wymagają wiedzy, w tym dotyczącej struktur danych i algorytmów.

Tę praktyczną książkę docenią programiści C#. Zaczniesz od zapoznania się z zasadami działania algorytmów, aby później przejść do różnych struktur danych: tablic, list, stosów, kolejek, słowników i zbiorów. Poszczególne przykłady zostały zilustrowane fragmentami kodu i rysunkami. Opanujesz także sortowanie tablic przy użyciu rozmaitych algorytmów, co solidnie ugruntuje Twoje umiejętności. Następnie poznasz bardziej złożone struktury danych i algorytmy służące do różnych zadań, jak wyznaczanie najkrótszej ścieżki w grafie czy rozwiązywanie łamigłówek. W ten sposób nauczysz się budować w języku C# komponenty algorytmiczne, które bez problemu zastosujesz w rozmaitych aplikacjach, również internetowych i na platformy mobilne.

Z tą książką nauczysz się:

  • podstaw algorytmów i ich klasyfikacji
  • przechowywać dane w ustrukturyzowany sposób
  • budować aplikacje wzbogacone o stosy, kolejki, tablice z haszowaniem, słowniki i zbiory
  • tworzyć wydajne aplikacje z użyciem algorytmów związanych z drzewami
  • podnosić wydajność swoich rozwiązań przy użyciu grafów
  • implementować algorytmy pozwalające rozwiązywać łamigłówki i generować fraktale

Kilkusetkrotne zwiększenie wydajności kodu na wyciągnięcie ręki!

O autorze

O recenzencie

Wstęp

Rozdział 1. Typy danych

  • C# jako język programowania
  • Aplikacje konsolowe platformy .NET
  • Podział typów danych
  • Typy wartościowe
    • Liczby całkowite
    • Liczby zmiennoprzecinkowe
    • Wartości logiczne
    • Znaki Unicode
    • Stałe
    • Wyliczenia
    • Krotki wartości
    • Struktury definiowane przez użytkownika
    • Typy wartościowe dopuszczające wartość null
  • Typy referencyjne
    • Obiekty
    • Ciągi znaków
    • Klasy
    • Rekordy
    • Interfejsy
    • Delegaty
    • Typ dynamiczny
    • Typy referencyjne dopuszczające wartość null
  • Podsumowanie

Rozdział 2. Wprowadzenie do algorytmów

  • Czym są algorytmy?
    • Definicja
    • Przykłady z życia
  • Sposoby zapisu algorytmów
    • Język naturalny
    • Schemat blokowy
    • Pseudokod
    • Język programowania
  • Typy algorytmów
    • Algorytmy rekurencyjne
    • Algorytmy "dziel i zwyciężaj"
    • Algorytmy z nawrotami
    • Algorytmy zachłanne
    • Algorytmy heurystyczne
    • Programowanie dynamiczne
    • Algorytmy siłowe
  • Złożoność obliczeniowa
    • Złożoność czasowa
    • Złożoność pamięciowa
  • Podsumowanie

Rozdział 3. Tablice i sortowanie

  • Tablice jednowymiarowe
    • Przykład - nazwy miesięcy
  • Tablice wielowymiarowe
    • Przykład - tabliczka mnożenia
    • Przykład - mapa gry
  • Tablice nieregularne
    • Przykład - roczny plan transportu
  • Algorytmy sortowania
    • Sortowanie przez wybieranie
    • Sortowanie przez wstawianie
    • Sortowanie bąbelkowe
    • Sortowanie przez scalanie
    • Sortowanie Shella
    • Sortowanie szybkie
    • Sortowanie przez kopcowanie
    • Analiza wydajności
  • Podsumowanie

Rozdział 4. Warianty list

  • Proste listy
    • Lista tablicowa
    • Listy generyczne
  • Listy uporządkowane
    • Przykład - książka adresowa
  • Listy powiązane
    • Listy jednokierunkowe
    • Listy dwukierunkowe
    • Jednokierunkowe listy cykliczne
    • Dwukierunkowe listy cykliczne
  • Interfejsy związane z listami
  • Podsumowanie

Rozdział 5. Stosy i kolejki

  • Stosy
    • Przykład - odwracanie wyraz
    • Przykład - Wieże Hanoi
  • Kolejki
    • Przykład - telefoniczne biuro obsługi klienta z jednym konsultantem
    • Przykład - telefoniczne biuro obsługi klienta z wieloma konsultantami
  • Kolejki priorytetowe
    • Przykład - biuro telefonicznej obsługi klienta ze wsparciem priorytetowym
  • Kolejki cykliczne
    • Przykład - górska kolejka grawitacyjna
  • Podsumowanie

Rozdział 6. Słowniki i zbiory

  • Tablice z haszowaniem
    • Przykład - książka telefoniczna
  • Słowniki
    • Przykład - wyszukiwanie produktu
    • Przykład - dane użytkownika
  • Słowniki uporządkowane
    • Przykład - encyklopedia
  • Zbiory haszowane
    • Przykład - kupony
    • Przykład - baseny
  • Zbiory "uporządkowane"
    • Przykład - usuwanie duplikatów
  • Podsumowanie

Rozdział 7. Warianty drzew

  • Zwykłe drzewa
    • Implementacja
    • Przykład - hierarchia identyfikatorów
    • Przykład - struktura przedsiębiorstwa
  • Drzewa binarne
    • Przeglądanie
    • Implementacja
    • Przykład - prosty quiz
  • Binarne drzewa poszukiwań
    • Implementacja
    • Przykład - wizualizacja drzewa BST
  • Drzewa AVL
    • Drzewa AVL
    • Drzewa czerwono-czarne
  • Drzewa trie
    • Implementacja
    • Przykład - automatyczne uzupełnianie
  • Kopce
  • Podsumowanie

Rozdział 8. Odkrywanie grafów

  • Koncepcja grafów
  • Zastosowania
  • Reprezentacje
    • Lista sąsiedztwa
    • Macierz sąsiedztwa
  • Implementacja
    • Węzeł
    • Krawędź
    • Graf
    • Przykład - krawędzie nieskierowane i nieważone
    • Przykład - krawędzie skierowane i ważone
  • Przeszukiwanie
    • Przeszukiwanie w głąb
    • Przeszukiwanie wszerz
  • Minimalne drzewo rozpinające
    • Algorytm Kruskala
    • Algorytm Prima
    • Przykład - kabel telekomunikacyjny
  • Kolorowanie
    • Przykład - mapa województw
  • Najkrótsza ścieżka
    • Przykład - mapa gry
  • Podsumowanie

Rozdział 9. Zobacz w działaniu

  • Ciąg Fibonacciego
  • Wydawanie reszty
  • Najbliższa para punktów
  • Generowanie fraktali
  • Znajdowanie wyjścia z labiryntu
  • Łamigłówka sudoku
  • Odgadywanie tytułu
  • Odgadywanie hasła
  • Podsumowanie

Rozdział 10. Podsumowanie

  • Klasyfikacja
  • Tablice
  • Listy
  • Stosy
  • Kolejki
  • Słowniki
  • Zbiory
  • Drzewa
  • Grafy
  • Słowo końcowe
  • Tytuł: Struktury danych i algorytmy w języku C#. Wykorzystaj potencjał C# do projektowania efektywnych aplikacji. Wydanie II
  • Autor: Marcin Jamro
  • Tytuł oryginału: C# Data Structures and Algorithms: Harness the power of C# to build a diverse range of efficient applications, 2nd Edition
  • Tłumaczenie: Krzysztof Bąbol, Łukasz Piwko
  • ISBN: 978-83-289-1890-0, 9788328918900
  • Data wydania: 2025-03-25
  • Format: Ebook
  • Identyfikator pozycji: stdan2
  • Wydawca: Helion