Których algorytmów się uczyć?

Których algorytmów się uczyć?
A1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3
0

Cześć

Rozpocząłem studia informatyczne i prowadząca wspominała coś o algorytmice. Nie miałem z tym wcześniej styczności (jestem po liceum :/ i nie miałem informatyki rozszerzonej). W pierwszym semestrze mamy uczyć się podstaw programowania przy użyciu języka C.

W drugim semestrze będzie przedmiot "Algorytmy i struktury danych" i tam będzie to uczone w bardziej zaawansowanym stopniu, teraz chciałbym zdobyć "Big picture".

Chciałbym zweryfikować znaleziska, powinienem zacząć od złożoności obliczeniowej algorytmów?

Następnie chciałbym przerobić jakieś podstawowe algorytmy i spróbować je zaimplementować w języku C, które powinienem przerobić? Mam tutaj np. taką listę. Przerobić któreś konkretnie czy może wszystkie? A może jest ich więcej (tych najważniejszych)?

Pozdrawiam serdecznie!

.andy
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1524
0

Myślę, że jak kupisz dobrą książkę o algorytmach i strukturach danych, to cię przeciągnie po obszarach, które będziesz musiał znać.

A1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3
0

Cześć, dzięki za odpowiedź. Właśnie na początek bardziej bym się skłaniał ku jakimś artykułom, bo chcę poznać absolutne podstawy, wiem, że są książki typu Cormen lub Sedgewick i są nawet w kartach przedmiotów, ale nawet zasugerowano nam, by nie skupiać się zbyt mocno na zaawansowanych zagadnieniach. Teraz chcę przerobić coś w stylu tego artykułu, który podlinkowałem, problem po prostu w tym, że nie wiem, które z nich są podstawowe.

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
1

@ark10 moim zdaniem na początek warto spróbować rozwiazać jakieś proste problemy algorytmiczne na jakimś SPOJu a nie skupiać się na analizie istniejących złożonych problemów.

A1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3
0

Okej, dzięki za poradę, w takim razie zmierzę się z zadaniami ze SPOJa.

Pozdrawiam

katakrowa
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Chorzów
  • Postów: 1670
3

Książki z podstawami:
Niklaus Wirth - "Algorytmy struktury danych = programy" - tu masz podstawowe algorytmy.
Banachowski L, Diks K, Ritter W - "Algorytmy i struktury danych" - tu masz jak obliczać złożoności.

p_agon
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: 96-230
  • Postów: 952
3

Poczytaj o Big O. Tablice, tablice z haszowaniem, listy, kolejka, drzewa, grafy, rekursja, sortowania, bfs, dfs. Zaopatrz sie w te ksiazke tak ma obrazki. A po Spoj -> top coder? :P

WeiXiao
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5226
2

a później na competitive

Marcin Marcin
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 610
0

Na jakiej uczelni jesteś?

PdP
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: W-wa
  • Postów: 189
1
ark10 napisał(a):

...prowadząca wspominała coś o algorytmice. Nie miałem z tym wcześniej styczności...

...teraz chciałbym zdobyć "Big picture".

To może na początek coś z YouTube?
np:

Satanistyczny Awatar
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 750
1

Tych z "wazniaka" i strony liceum w Tarnowie. xD Najwieksze publicznie dostępne kompedium o algorytmach i strukturach danych, którego dorobiły sie polskie internety.
Dalej już samodzielnie będziesz wiedzieć czego się uczyć. Z dużą dozą prawdopodobieństwa będą to tym czy innym sposobem algorytmy i struktury danych powiązane z tematyką grafów.

J4
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 29
0

Jako start do nauki algorytmów polecam książkę, która została już wcześniej wymieniona - Algorytmy ilustrowany przewodnik. Czyta się ją szybko i dzięki obrazkom jest bardzo zrozumiała.

TE
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 67
1

U mnie najlepiej sprawdza się rozwiązywanie zadań ze stron typu codeforces itp.
Jeśli zaczynasz to wybierasz najprostsze problemy i próbujesz rozwiązać zadanie. Próbujesz rozwiązać to w jakikolwiek znany Ci sposób -> nawet jeśli jest O(n!)
Potem sprawdzasz wskazówki -> jeśli podają nazwę algorytmu/sposób na rozwiązanie to czytasz o tym, starasz się zrozumieć i potem przepisujesz swoje rozwiązanie.
Na samym końcu możesz porównać z najlepszymi rozwiązaniami w danym języku.

I pamiętaj, JAKOŚĆ nie ILOŚĆ.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.