Co to jest algorytmy
Algorytm per se to nic innego jak instrukcja krok po kroku rozwiązania problemu. Większość algorytmów używanych obecnie w programowaniu została już odkryta, przetestowana i sprawdzona. Algorytmy w Javie to metody statyczne, które służą do wykonywania różnych operacji na kolekcjach. Jeśli struktury danych są używane przez programistów Java do przechowywania i organizowania danych, algorytmy są używane do manipulowania danymi w tych strukturach. Tak więc te dwa tematy są ze sobą powiązane, a zrozumienie, w jaki sposób one ze sobą współpracują, jest dość ważne i może sprawić, że kodowanie w Javie będzie o wiele bardziej wydajne. Algorytmy można zastosować w dowolnym języku programowania, a od doświadczonych programistów zwykle oczekuje się znajomości przynajmniej podstaw tego tematu, a także wiedzy, jak konwertować algorytmy na kod w języku programowania, którego używają.Książki o algorytmach
- Łatwe struktury danych i algorytmy autorstwa Narasimha Karumanchi.
Jeden z najlepszych podręczników dla początkujących w zakresie algorytmów (i struktur danych). „Łatwe struktury danych i algorytmy: struktury danych i łamigłówki algorytmiczne” to książka oferująca rozwiązania złożonych struktur danych i algorytmów. Istnieje wiele rozwiązań każdego problemu, a książka jest napisana w języku C/C++. Możesz użyć tego jako przewodnika przygotowującego się do rozmów kwalifikacyjnych, egzaminów i pracy w kampusie.
- Grokking Algorithms autorstwa Adityi Bhargava.
„Grokking Algorithms” to kolejny łatwy do zrozumienia, w pełni zilustrowany i napisany przyjaznym przewodnikiem, który uczy, jak zastosować typowe algorytmy do praktycznych problemów, z którymi spotykasz się na co dzień jako programista. Zaczniesz od sortowania i wyszukiwania, a gdy rozwiniesz swoje umiejętności myślenia algorytmicznego, zajmiesz się bardziej złożonymi zagadnieniami, takimi jak kompresja danych i sztuczna inteligencja. Każdy przykład zawiera diagramy i w pełni opatrzone adnotacjami przykłady kodu w języku Python.
- Algorytmy odblokowane przez Thomasa Cormena.
Książka o podstawach algorytmów dla początkujących i programistów chcących poszerzyć swoją wiedzę na ten temat, tym razem napisana jako podręcznik akademicki dla studentów MIT.
„Czytelnicy dowiedzą się, czym są algorytmy komputerowe, jak je opisać i jak je oceniać. Odkryją proste sposoby wyszukiwania informacji w komputerze; metody porządkowania informacji w komputerze w ustalonym porządku („sortowanie”); jak rozwiązywać podstawowe problemy, które można modelować w komputerze za pomocą struktury matematycznej zwanej „wykresem” (przydatne do modelowania sieci drogowych, zależności między zadaniami i relacji finansowych); jak rozwiązywać problemy, które zadają pytania o ciągi znaków, takie jak struktury DNA; podstawowe zasady kryptografii; podstawy kompresji danych; a nawet, że są problemy, których nikt nie wymyślił, jak rozwiązać na komputerze w rozsądnym czasie” – mówi autor książki.
- Struktury danych i algorytmy w Javie autorstwa Roberta Lafore'a.
A oto podręcznik, który koncentruje się w szczególności na Javie. Oprócz jasnych i prostych przykładowych programów, Robert Lafore dodał do książki warsztaty w postaci małego programu demonstracyjnego, który można wykonać w przeglądarce internetowej. Programy demonstrują w formie graficznej, jak wyglądają struktury danych i jak działają.
Propozycje rozwiązań projektów programistycznych znajdujące się na końcu każdego rozdziału są udostępniane instruktorom w uznanych instytucjach edukacyjnych. Ten edukacyjny dodatek do podręcznika można znaleźć na stronie pearson.com w Centrum zasobów dla instruktorów.
- Hello World: Być człowiekiem w dobie algorytmów autorstwa Hannah Fry.
„Hello World: Being Human in the Age of Algorithms” Hannah Fry to dość interesująca książka, która patrzy na algorytmy z nieco innej perspektywy. Autor opisuje prawdziwe możliwości i ograniczenia algorytmów, które już teraz automatyzują ważne decyzje w służbie zdrowia, transporcie, przestępczości i handlu.
Kursy online dotyczące algorytmów
- Algorytmy, część I , część II autorstwa Uniwersytetu Princeton za pośrednictwem Coursera.
Całkiem świetny, całkowicie darmowy kurs z Princeton. Obejmuje podstawowe informacje, które każdy poważny programista powinien wiedzieć o algorytmach i strukturach danych, z naciskiem na aplikacje i naukową analizę wydajności implementacji Java. Część I dotyczy elementarnych struktur danych, algorytmów sortowania i wyszukiwania. Część II koncentruje się na algorytmach przetwarzania grafów i ciągów znaków. Kurs nie oferuje certyfikatu po ukończeniu.
- Program specjalizacji struktur danych i algorytmów prowadzony przez UC San Diego za pośrednictwem Coursera.
Kolejny renomowany program kursów z algorytmów i struktur danych oferowany przez University of California, San Diego i National Research Institute Higher School of Economics. Ta specjalizacja jest mieszanką teorii i praktyki: nauczysz się algorytmicznych technik rozwiązywania różnych problemów obliczeniowych i zaimplementujesz około 100 algorytmicznych problemów kodowania w wybranym języku programowania.
„Żaden inny kurs online z algorytmów nawet nie przybliża się do zaoferowania bogactwa wyzwań programistycznych, z którymi możesz się zmierzyć podczas następnej rozmowy kwalifikacyjnej. Aby Cię przygotować, zainwestowaliśmy ponad 3000 godzin w zaprojektowanie naszych wyzwań jako alternatywy dla pytań wielokrotnego wyboru, które zwykle można znaleźć w kursach MOOC. Przepraszamy, ale nie wierzymy w pytania wielokrotnego wyboru, jeśli chodzi o algorytmy uczenia się... ani nic innego w informatyce! Dla każdego algorytmu, który opracujesz i zaimplementujesz, zaprojektowaliśmy wiele testów, aby sprawdzić jego poprawność i czas działania — będziesz musiał debugować swoje programy, nawet nie wiedząc, co to za testy! Może się to wydawać trudne, ale wierzymy, że to jedyny sposób, aby naprawdę zrozumieć, jak działają algorytmy i opanować sztukę programowania” – mówią autorzy kursu.
- Specjalizacja algorytmów na Uniwersytecie Stanforda za pośrednictwem Coursera.
I tym razem trzeci dobrze znany darmowy kurs algorytmów na renomowanej uczelni, Uniwersytecie Stanforda. Ten kurs jest wprowadzeniem do algorytmów dla osób z przynajmniej niewielkim doświadczeniem w programowaniu. Uczniowie będą ćwiczyć i opanowywać podstawy algorytmów poprzez kilka rodzajów ocen. Co tydzień dostępny jest quiz wielokrotnego wyboru, który sprawdza, czy rozumiesz najważniejsze pojęcia. Istnieją również cotygodniowe zadania programistyczne, w których wdrażasz jeden z algorytmów omawianych na wykładzie w wybranym przez siebie języku programowania. Każdy kurs kończy się egzaminem końcowym wielokrotnego wyboru.
Kanały YouTube i playlisty
- Algorytmy autorstwa Abdula Bari.
Lista krótkich wykładów na temat algorytmów autorstwa Abdula Bari, dość popularnego YouTubera, który wyjaśnia swoim widzom złożone tematy w najprostszy i najłatwiejszy do zrozumienia sposób.
- Struktury danych i algorytmy w Javie na temat programowania z kanałem Mosh.
„Programowanie z Moshem” to popularny główny kanał YouTube dla początkujących programistów. Zawiera wiele samouczków na temat Javy i innych języków programowania, są one dobrze ustrukturyzowane i dobrze zaprezentowane, w tym samouczek dotyczący struktur danych i algorytmów. Dobry sposób na zapoznanie się z tymi tematami, jeśli nie masz ochoty na czytanie książek i płacenie za kursy.
- MIT 6.006 Wprowadzenie do algorytmów, jesień 2011, autor: MIT OpenCourseWare
MIT OpenCourseWare jest kanałem Massachusetts Institute of Technology i zawiera wiele świetnych bezpłatnych kursów wideo, w tym ten dotyczący algorytmów. Cały kurs składa się z 47 około godzinnych sesji.
GO TO FULL VERSION