![]() |
![]() |
![]()
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: Zarejestrowani Postów: 592 Pomógł: 62 Dołączył: 3.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
oczywiście ten algorytm jest pamięciożerny, bo potrzebuje zarezerwować tablicę int [N/2]; ale w miarę szybki, bo jak widać w kodzie u siebie na kompie bez problemów wykonuje się sprawdzenie dla prawie N = 400 000 w nie wiem jakim czasie, ale na pewno mniejszy niż 1s (IMG:style_emoticons/default/tongue.gif) dla większych danych przekraczam 16MB added: ktoś wie dlaczego tablica bool [400 000] przekrecza 16MB, jeśli powinna zajmowac ~0,4MB? średni czas przy 1000 pomiarach wyniósł 0.150357570168s (N=385000) EDIT: cofam info o array_fill - mój błąd oraz rozmiar lokowanej tablicy stał się "normalny" i teraz w czasie: 0.882550001144s, mogę wykonać algorytm dla danych N=10 000 000 przy prostej operacji dodawania/usuwania zer przy N, można zobaczyć, że algorytm działa w czasie liniowym: added: @sztos, teraz już wszystko powinno być ok, wkradł się błąd... tylko zmiejsz N na ~400 000, bo nie wiem czemu ta tablica tak dużo zajmuje, zaraz napiszę program w C i zobaczymy czasy (IMG:style_emoticons/default/biggrin.gif) Ten post edytował rzymek01 31.08.2009, 16:16:40 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.10.2025 - 01:07 |