sobota, 31 lipiec 2010
 
  Start
template designed by peekmambo.com
 
Menu główne
Start
 
Algorytmy
Kryptografia
Struktury danych
Kurs algorytmiki
Praktyka
Prawo IT
 
Mapa serwisu
Historia strony
Współautorzy
 
Forum
Narzędzia
Napisz artykuł
Zgłoś błąd
Szukaj
Logowanie

News

Na stronach serwisu pojawiła się możliwość dodawania własnych implementacji przedstawianych algorytmów i metod. Rozszerzyliśmy listę wspieranych języków programowania, zapraszamy do pobierania i udostępniania własnych programów!

Algorytmy i Struktury Danych

Serwis Algorytmy i struktury danych powstał na przełomie lat 2000 i 2001. Postanowiliśmy stworzyć witrynę wyłącznie o algorytmach i konsekwentnie ją rozbudowywać. Chcieliśmy stworzyć stronę z materiałami dostępnymi również w podręcznikach, lecz opisanymi dużo prościej, mniej formalnie, z przykładami oraz implementacją. Na stronach serwisu znajdziesz setki artykułów z dołączonymi rysunkami, zdjęciami i schematami blokowymi. Istniejące opisy cały czas uzupełniamy i poprawiamy zgodnie z waszymi sugestiami. Oprócz szczegółowych opisów metod oraz przykładów ich użycia znajdziesz tutaj ponad pół tysiąca implementacji w wielu językach programowania. Każdy z artykułów może być komentowany. Możesz podzielić się uwagami na temat algorytmu, podać dodatkowe przykłady, informacje, przypadki szczególne, itp... Z całej zawartości serwisu możesz korzystać bez żadnych opłat i rejestracji!


Wygeneruj graf
Automatyczne generowanie grafówUruchomiliśmy autorski skrypt pozwalający szybko i sprawnie tworzyć reprezentacje graficzną grafów. Przy jego pomocy tworzyć można zarówno grafy skierowane jak i nieskierowane. Każdy wierzchołek oraz krawędź może być oznaczona wybraną etykietą oraz kolorem. Używając tego narzędzia troszczysz się jedynie o zdefiniowanie zbioru wierzchołków i krawędzi, całą pracę polegającą na takim graficznym ustawieniu elementów by przecięć pomiędzy krawędziami było jak najmniej, by całość wyglądała schludnie i przejrzyście załatwia za Ciebie program. Twoja decyzja polega jedynie na wybraniu preferowanej orientacji grafu (pozioma lub pionowa). Wyjściowy obraz może być zapisany w jednym z kilku formatów do wyboru. Zapraszamy do skorzystania z narzędzia do generowania grafów
Wygeneruj schemat blokowy
Narzędzie generowania schematów blokowychNa naszych stronach znajdziesz kolejny autorski skrypt. Tym razem jest to narzędzie pozwalające szybko i sprawnie tworzyć schematy blokowe. Przy jego pomocy tworzysz zbiór bloków wykonywalnych oraz decyzji. W kolejnym kroku definiujesz ich zawartość oraz ich następniki czyli bloki/decyzje, które mają być wykonywane jako następne. Przed wygenerowaniem schematu skrypt sprawdzi czy wszystkie wejścia i wyjścia z bloków są przypisane. Używając tego narzędzia skupiasz się na logice tworzonego schematu blokowego, żmudną pracę polegającą na odpowiednim ułożeniu elementów, by całość wyglądała schludnie i przejrzyście wykonuje za Ciebie program. Wyjściowy schemat może być zapisany w jednym z kilku formatów do wyboru. Zapraszamy do skorzystania z narzędzia do generowania schematów blokowych
Wygeneruj wzór matematyczny
Narzędzie do generowania wzorów matematycznychUdostępniliśmy narzędzie do graficznego tworzenia i generowania wzorów matematycznych w programie Latex. Dzięki niemu w prosty sposób wygenerować można nawet skomplikowane wzory wykorzystujące macierze, pierwiaski, indeksy górne, dolne a także wiele innych. Tworzenie wzoru polega na wybieraniu gotowych wzorców prezentowanych w formie graficznej. Wyjściowy wzór może być zapisany w jednym z kilku formatów do wyboru. Zapraszamy do skorzystania z narzędzia do generowania wzorów matematycznych
Weź udział w powstawaniu strony
Weź udział w powstawaniu strony Uruchomiliśmy możliwość dodawania implementacji do zamieszczonych algorytmów, metod i struktur danych przez wszystkich zarejestrowanych użytkowników portalu. Całość została zintegrowana z systemem informacji o użytkownikach dzięki czemu, potencjalny pracodawca po jednym kliknięciu na nazwisko twórcy ma dostęp do wszystkich jego artykułów, implementacji, komentarzy oraz wpisów na forum. Wkrótce również każdy zarejestrowany użytkownik będzie mógł dodawać własne artykuły, póki co czekamy na przesyłanie ich na nasz e-mail.


Nowości
  • Zamiana liczby na słowa z polską gramatyką
    Bardzo często spotykam się na forach i w programach z problemem zamiany liczb na postać słowną. Zauważyłem że prawie nigdzie nie jest uwzględniona polska gramatyka, przykładowo liczba 112004033 wygląda co najmniej tak jed*jed*dwa*zero*zero*cztery*zero*trzy*trzy lub w najlepszym przypadku tak sto dwanascie mln. cztery tys. trzydziesci trzy. Dla każdego rzędu wielkości w polskiej...
  • Algorytm Cohena-Sutherlanda
    Załóżmy, że mamy dany pewien zbiór odcinków oraz okno, które definiuje nam obszar widziany przez użytkownika. W zależności od wielkości okna oraz jego położenia część odcinków znajdzie się w oknie - powinna zostać pokazana, a część znajdzie się poza oknem - nie powinna być brana pod uwagę. Takie zadanie sprawnie...
  • Całkowanie numeryczne - metoda Simpsona
    Załóżmy, że chcemy obliczyć całkę z funkcji f(x) w przedziale <xp; xk>. Definicja całki oznaczonej Riemana, mówi nam, że wartość całki równa jest sumie pól obszarów pod wykresem krzywej w zadanym przedziale całkowania. Sumę taką możemy obliczyć w przybliżeniu dzieląc obszar całkowania na n równych części. W metodach prostokątów (?option=com_content&task=view&id=198&Itemid=28)...
  • Edytor Grafów
    /* The default text style used on every page */ #hover .center .top #toolbar_wrapper form a, a:visited a:visited:hover, a:link:hover a img select, input { font-family:"lucida grande", tahoma, verdana, arial, sans-sarif; font-size:11px; background-color:#FFFFFF; border:1px solid #8FB6BD; height:18px; } textarea textarea:focus /* ------- Button formating ------ */ .bluebutton, .lightbluebutton, .greybutton { border-style:...
  • Silnie spójne składowe
    Dla grafów nieskierowanych zostało zdefiniowane pojęcie spójnych składowych, czyli maksymalnych fragmentów grafu, które są spójne (pomiędzy każdymi dwoma wierzchołkami istnieje ścieżka). Do sprawdzania czy graf jest spójny oraz znajdowania jego spójnych składowych wykorzystywany jest algorytm DFS lub BFS (?option=com_content&task=view&id=98&Itemid=28). Odpowiednikiem tej definicji dla grafów skierowanych są silnie spójne składowe. Silnie spójna...


Popularne
  • Schematy blokowe
    Schematy blokowe są tzw. metajęzykiem. Oznacza to, że jest to język bardzo ogólny, służy do opisywania algorytmów w taki sposób, by na jego podstawie można było je zaimplementować w każdym języku. Częściami składowymi schematów blokowych są proste figury geometryczne, np. prostokąt, romb, koło, równoległobok itd... W tych figurach umieszczamy warunki oraz...
  • Rekurencja
    Charakterystyczną cechą funkcji (procedury) rekurencyjnej jest to, że wywołuje ona samą siebie. Drugą cechą rekursji jest jej dziedzina, którą mogą być tylko liczby naturalne. Najłatwiej zrozumieć mechanizm działania rekursji na przykładzie silni: rekurencyjny wzór na obliczenie n! zapisuje się w ten sposób: n!=n*(n-1)! Ze wzoru tego wynika, że aby obliczyć np. 4!,...
  • Sortowanie szybkie (quicksort)
    Algorytm sorotwania szybkiego jest uważany za najszybszy algorytm dla danych losowych. Zasada jego działania opiera się o metodę dziel i zwyciężaj (?option=com_content&task=view&id=63&Itemid=26). Zbiór danych zostaje podzielony na dwa podzbiory i każdy z nich jest sortowany niezależnie od drugiego. Dla zadanej tablicy a[l..p] wybieramy element v=a[l] i przeszukujemy resztę tablicy (tzn....
  • Grafy i ich reprezentacje
    Na początek kilka definicji: W informatyce grafem nazywamy strukturę G=(V, E) składającą się z węzłów (wierzchołków, oznaczanych przez V) wzajemnie połączonych za pomocą krawędzi (oznaczonych przez E). Grafy dzielimy na grafy skierowane i nieskierowane: Rys.1. Graf nieskierowany Rys.2. Graf skierowany Jeśli krawędź łączy dwa wierzchołki to jest z nimi incydentna. Pętla własna to krawędź łączące wierzchołek z...
  • Algorytm Dijkstry
    Algorytm Dijkstry służy do wyznaczania najmniejszej odległości od ustalonego wierzchołka s do wszystkich pozostałych w skierowanym grafie (?option=com_content&task=view&id=44&Itemid=27), w odróżnieniu jednak od Algorytmu Forda-Bellmana (?option=com_content&task=view&id=94&Itemid=0), graf wejściowy nie może zawierać krawędzi o ujemnych wagach. W algorytmie tym pamiętany jest zbiór Q wierzchołków, dla których nie obliczono jeszcze najkrótszych ścieżek, oraz...


Najwyżej oceniane
  • REGON
    Regon jest numerem identyfikującym podmioty gospodarcze w Polskim Rejestrze Gospodarki Narodowej. Dawniej numer ten był 7-cyfrowy, później REGON rozszerzono na 9 cyfr. Dawne numery 7-cyfrowe poprzedzono dwoma 0, uzyskując w ten sposób numery 9-cyforwe. Jak mówi rozporządzenie "Sposób i metodologia prowadzenia i aktualizacji rejestru podmiotów gospodarki narodowej...", Dz.U.99.69.763 numer REGON składa...
  • Współliniowość trzech punktów
    Zrozumienie tego algorytmu wymaga zaznajomienia się ze wstępem do geometrii obliczeniowej (?option=com_content&task=view&id=56&Itemid=26) Wzajemne położenie trzech punktów a, b i c można bardzo łatwo określić korzystając z wyznacznika det(a,b,c) macierzy kwadratowej postaci: det (a,b,c)>0 : punkt c znajduje się po lewej stronie wektora AB - det (a,b,c)=0 : punkty a, b, i c...
  • Zbiór Mandelbrot'a
    Po raz pierwszy pojęcie fraktala zostało użyte przez Benoit Mandelbrota w latach 70-tych XX wieku. Po łacinie fractus oznacza podzielny, ułamkowy, cząstkowy. Nazwa ta nie ma ścisłej matematycznej definicji. Oznacza ona obiekty, które mają nietrywialną strukturę w każdej skali oraz są samopodobne - czyli każda ich część przypomina całość....
  • EAN-13
    By kod EAN-13 (http://www.algorytm.org/index.php?option=com_content&task=view&id=143&Itemid=54) mógł zostać automatycznie "przeczytany" przez urządzenia skanujące musi zostać przetworzony do postaci kodu kreskowego. Sposób kodowania jest na pierwszy rzut oka nieco skomplikowany a to wszystko za sprawą kodu UPC-A (?option=com_content&task=view&id=207&Itemid=54), z którym musiał być on zgodny. Jest on 12-cyfrowy a EAN-13 jest 13-cyfrowy. Trzeba było...
  • Odległość Levenshteina (odległość edycyjna)
    Algorytm Levenshteina, służy do liczenia odległości edycyjnej (odległości Levenshteina). Jest to najmniejsza liczba działań prostych, przeprowadzająca jeden napis w drugi. Działania proste to: wstawienie nowego znaku usuniecie znaku zamiana na inny znak Idea algorytmu to stworzenie tablicy dwuwymiarowej, o wymiarach n+1 na m+1 gdzie n i m to odpowiednio długości porównywanych słów. Pierwszy wiersz i kolumnę...


Nagłówki RSS
Bookmarki







Gościmy
Aktualnie jest 12 gości online

Sonda
Czy znalazłeś na stronach www.algorytm.org to czego szukałeś?
  

www.algorytm.org (c) 2000-2009