![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 866 Pomógł: 32 Dołączył: 2.06.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Kuleje jeśli chodzi o kwestie wynajdywania odpowiednich algorytmów żeby rozwiązać dany problem, czasem czytam o jakimś algorytm w necie i nie mam pojęcia jak go ugryźć.
Stąd moje pytanie: Czy jest jakaś książka z której dowiem się sprawnie tworzyć algorytmy, na czym to dokładnie polega? Ale tak od podstaw? W ogóle nie wiem czy w dobrym kierunku szukam, ale trochę błądzę po omacku. Nigdy nie kończyłem studiów informatycznych, ani matematycznych, więc mam w głowie tylko strzępki informacji na ten temat z liceum (IMG:style_emoticons/default/winksmiley.jpg) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Wczoraj źle zrozumiałem algorytm (IMG:style_emoticons/default/smile.gif) Patrzyłem na niego jako:
1.Weź element z tablicy 2. Kolejny element sprawdź czy jest wielokrotnością wybranego elementu, 3. Jeśli tak to usuń, jeśli nie nie rób nic, 4. Powtarzaj 2 i 3 aż do końca tablicy, 5. Wtedy weź następny wolny i powtarzaj od kroku 2 aż osiągniesz ostatni element tablicy Dlatego uważałem, że kod wookiegob jest zgodniejszy z algorytmem niż Twój. Dopiero gdy trochę zmęczenie mi opadło ( wczoraj moja mała córeczka dała mi trochę popalić i dopiero dziś na to na spokojnie późnym popołudniem zerknąłem ) przyjrzałem sie lepiej samemu opisowi algorytmu (wolę przeczytać zawsze jak on działa niż implementować pseudokod). No i muszę przyznać, że się myliłem co do implementacji algorytmu. Twój jest niemal kropka w kropkę dokładnie tym, jak go opisano. Co do implementacji w c++ to nie można usuwać elementów tablicy, jak sam napisałeś, bo inaczej byłyby jaja i sypały by się błędy ochrony pamięci, a sam program działałby niepoprawnie. Podany przez Ciebie sposób implementacji w C++ jest IMHO bardzo dobry i szybki. Co do algorytmu wookiegob, to jego implementacja nie byłaby trudna, tyle że konieczna byłaby funkcja napisana samemu do reindeksacji. No chyba, że zdalibyśmy się na STL (IMG:style_emoticons/default/smile.gif) Dla tej wersji myślę że list, slist lub sequence byłyby odpowiednie. Odpadło by nam wtedy martwienie o reindeksowanie (te typy mają to wbudowane). Myślę l0ud, że słyszałeś o STL (Standard Template Library). Bardzo fajna biblioteka, implementująca ciekawe rozwiązania, w tym iteratory znane także w PHP. Tyle że bezpośrednie odwołania do indeksów tablicowych i tak będą o wiele szybsze. Niezależnie od tego jakiego języka byśmy używali. To z pierwiastkiem to pewien "hack" w algorytmach by obniżyć ilość pustych przebiegów. Też mi o tym na algorytmach podczas studiów powiedziano na zajęciach. Co do "parallel computing" to jest to nazwa dla "przetwarzanie równoległe", ale jaki byłby angielski i polski odpowiednik na: "działania mające na celu przetworzenie kodu sekwencyjnego do postaci równoległej"? A to właśnie nazywaliśmy "zrównolegnianiem" (IMG:style_emoticons/default/winksmiley.jpg) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 6.10.2025 - 19:24 |