czwartek, 22 kwietnia 2010

Czy jesteś wśrod 10% programistów, którzy potrafią zaimplementować wyszukiwania binarne?

Wyszukiwanie binarne rozwiązuje problem (wyszukiwania wcześniej posortowanej talbicy) poprzez manipulowaniem zakresem tablicy, w której znajduje się wyszukiwana wartość. Wstępnie zakresem jest cała tablica. Nastęnie zakres jest dzielony na dwie części i następuje sprawdzenie, czy poszukawna wartość jest mniejsza lub większa od wyznaczonego środka zakresu. Ten proces trwa do momentu gdy wartość zostanie znaleziona lub gdy zakres jest pusty.

Złożonośc obliczeniowa takiego algorytmu wynosi log(2)N.

Większośc programistów uważa, że korzystając jedynie z powyższego opisu algorytmu implementacja jest prosta. Nic bardziej mylnego. Jedyny sposób by to sprawdzić to napisać algorytm samemu bez korzystania z dodatkowych pomocy. :)

Zasady testu są następujące:
  1. Użyj dowolnego języka programowania.
  2. Żadnego wycinania, wklejania, CTRL+c, CTRL+v, itp.
  3. Nawet nie podglądaj na kod algorytmu od innych.
  4. Nie używaj bsearch() i innego typu oszustw. ;)
  5. Nie spiesz się. Czas nie gra roli.
  6. Możesz użyć jedynie kompilatora do sprawdzenia składni programu.
  7. ŻADNEGO TESTOWANIA, dopóki program nie będzie napisany od początku do końca.
Jeśli uznasz, że napisałes dobry program, porównaj go z tym linkiem.