Nauka algorytmiki - początkujący

0

Cześć,

Coraz bardziej zaczyna do mnie docierać, że potrzebna mi jest o wiele lepsza ( bardziej naukowa ) metoda tworzenia algorytmów. Prosiłbym was o wskazanie publikacji dotyczących tego tematu. Najbardziej ucieszyłyby mnie zasoby sieciowe na ten temat bo nie jest przy forsie niestety, ale tytuły książek też chętnie przyjmę do wiadomości.

Z góry dzięki. :)

p.s.
Jaki jest link do przypomnienia hasła do serwisu, bo go nie mogę znaleźć.

0

Kiedy podasz błędne dane podczas logowania, to się pojawia link z opcją przypomnienia hasła http://4programmers.net/User/Password

1

Dużo o algorytmice i w miarę przystępnie przekazane (zależnie od artykułu) znajdziesz na stronie: http://www.informatyka.wroc.pl/

27

Kilka pozycji:
Na początek:

  • M. Sysło, Algorytmy;
  • Niklaus Wirth, Algorytmy + struktury danych = programy;
  • Piotr Wróblewski, Algorytmy struktury danych i techniki programowania;
  • J. Bentley, Perełki oprogramowania.

Następnie:

  • Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein, Wprowadzenie do algorytmów;
  • L. Banachowski, K. Diks, W. Rytter, Algorytmy i struktury danych;
  • Piotr Stańczyk, Algorytmika Praktyczna. Nie tylko dla mistrzów;
  • Witold Lipski, Kombinatoryka dla programistów;
  • M. de Berg, M. Van Kreveld, M. Overmars, O. Schwarzkopf, Geometria obliczeniowa. Algorytmy i zastosowania;
  • R. Sedgewick, Algorytmy w C++;
  • R. Sedgewick, K. Wayne, Algorytmy;
  • S. S. Skiena The Algorithms Design Manual;
  • D. E. Knuth, Sztuka programowania t. 1-3, oraz t. 4 zeszyt 2;
  • Niebieskie książeczki z olimpiad informatycznych (można zamówić płacąc grosze, można też pobrać: http://oi.edu.pl/l/40/).

Matematyka dla informatyków (część jest również we "Wprowadzeniu do algorytmów" i "Kombinatoryce dla programistów"):

  • R. Graham, D.E. Knuth, O. Patashnik, Matematyka konkretna;
  • K.A. Ross, C.R.B. Wright, Matematyka dyskretna;
  • R.J. Wilson, Wprowadzenie do teorii grafów.

Jest również książka opisująca informatykę (a w szczególności algorytmikę) jako naukę, nie jest to zbiór algorytmów i struktur danych, ale literatura popularnonaukowa (nieliczna z dziedziny informatyki):
David Harel, Yishai Feldman, Rzecz o istocie informatyki Algorytmika

Opis wielu książek tutaj:
Książki do algorytmiki

Zasoby internetowe:
http://wazniak.mimuw.edu.pl/index.php?title=Metody_programowania

Po angielsku:

To tak na początek myślę, że wystarczy ;).

0

Poprzedni post bardzo cenny. Ale moze pojawilo sie w miedzyczasie cos nowego?

0

Da sięgdzies w Polsce kupic R. Sedgewick, K. Wayne, Algorytmy ?

0

Czy jeśli piszę w Javie to książka Wróblewskiego mi podejdzie ?

0

Algorytmy - Wydanie IV - Sedgewick
http://czytam.pl/k,ks_670105,Algorytmy-Sedgewick-Robert-Wayne-Kevin.html

widzę, że w końcu zanosi się na dodruk 2017-06-23.

0

Fajne ksiązki o algorytmach:
Introduction to the Design and Analysis of Algorithms - Anany Levitin,
Algorithm Design - Jon Kleinberg,‎ Éva Tardos.

0

Programowanie dynamiczne:
Dynamic Programming for Coding Interviews: A Bottom-Up approach to problem solving

0

Algorytmy w Pythonie:
Data Structures and Algorithms in Python - Michael T. Goodrich

0

Dużo osób podaje proponowane pozycje z literatury dot. algorytmiki a mnie nurtuje inne pytanie:
Czy np. umiejętność **implementacji **jakiegoś drzewa (binarnego / czerwono czarnego) będąc np. jakimś przeciętnym web devem ma sens?
Pytam o umiejętność stricte **implementacji **bo nie wątpię, że koncepcyjna znajomość danej struktury min. jej wad i zalet może okazać się przydatna dobierając rozwiązanie w aplikacji ale np. opierając się o implementację dostarczoną np. z JDK (TreeSet/TreeMap).

Analogicznie z różnego rodzaju sortowaniem. W pracy raczej nikt, nie będzie oczekiwał, że będę pisał własną implementację quick sorta bo ktoś to już zrobił i na pewno zrobił to lepiej.

1

@RequiredNickname:

no tylko jeżeli rozumiesz koncept i znasz podstawy języka, to w większości przypadków jaki problem zaimplementować podstawowy ds? oczywiście nie będzie to pewnie std:lib ready bo edge casy

1

@RequiredNickname: Na pewno będzie to dobre ćwiczenie. Ja byłem na studiach, na których takie rzeczy robiliśmy (tych studiów nie skończyłem, ale najważniejsze przedmioty algorytmiczne zdałem) i sam lubiłem pokodzić czasami algorytmy (ostatnio rzadziej to robię niestety) dla sportu. Dobrze coś takiego zrobić przynajmniej raz w życiu, później wiesz, że spokojnie to zrobisz jeśli będziesz musiał. Mi się nigdy to nie przydało w pracy, ale na pewno są osoby, którym się przydało i nie wiem czy się nie przyda, ale tak można powiedzieć o wielu rzeczach. Obecnie i tak nie napisałbym żadnego drzewa łącznie gdzie jest reorganizacja elementów bez przypomnienia sobie algorytmu, ale co to za problem jak się wie czego szukać.

1
RequiredNickname napisał(a):

Analogicznie z różnego rodzaju sortowaniem. W pracy raczej nikt, nie będzie oczekiwał, że będę pisał własną implementację quick sorta bo ktoś to już zrobił i na pewno zrobił to lepiej.

Nie chodzi o to, że w pracy będziesz implementować Selection Sort.

Chodzi o to, że jak nie dawałbyś sobie rady z zaimplementowaniem Selection Sort i wyleciał ze studiów z powodu wstępu do algorytmów (dołożone do wylotu granice funkcji itp) to znaczy, że masz poważne problemy z podstawowym abstakcyjnym myśleniem.

Koncepcja: mniejsze na lewo, większe na prawo to też nie rocket science i po ciężkich trudach, wspomaganiu tutorialami, pytaniami każdy powinien dać sobie z tym rade. A jednak nie dają sobie rady.

3

@RequiredNickname nie chodzi o to że będziesz implementować sortowanie, ale mozesz się spotkać z problemem który należy rozwiązać analogiczną metodą i doświadczenie z algorytmami pozwoli ci wpaść na rozwiązanie. Dodatkowo bardzo wielu bootcampowiczów nie rozumie jak działają pod spodem struktury danych i nie potrafią ich poprawnie dobrać do problemu. Jeśli dla kogoś nie ma różniczy czy używa List czy Set albo nie wie dlaczego używać Map i wyszukuje liniowo w liście to znaczy że ma spore braki.

0
Shalom napisał(a):

@RequiredNickname nie chodzi o to że będziesz implementować sortowanienie. [...] Dodatkowo bardzo wielu bootcampowiczów nie rozumie jak działają pod spodem [...]

Jak bootcamowicz nie zna ale jest kumaty to się nauczy i będzie OK.
Gorzej gdy student przez semestr nie dał rady ogarnąć jak działa sortowanie, później miał jeszcze cały rok na nadrobienie zaległości i poprawę i dalej nie ogarnie "abstrakcji", więc wyleciał ze studiów.

0

Całkiem fajne są kursy na platformie: edx. Przerabiałem kilka modułów, aczkolwiek czasami trzeba się posiłkować zewnętrznymi źródłami.
Jako zupełny wstęp mogę polecić książkę "Algorytmy ilustrowany przewodnik", gdzie autor rewelacyjnie i w zrozumiały sposób tłumaczy podstawy.

2

Dla mnie ta playlista i w ogóle kanał to jest pure gold:

Kompletna i ustrukturyzowana wiedza, żeby przejść np. Google coding interview. Polecam te listę i wskazane materiały

2

Ja z kolei mogę podrzucić tę listę.

1 użytkowników online, w tym zalogowanych: 0, gości: 1