baalder363
#programowanie #java #naukaprogramowania

Cześć Mirki. Napisałem sobie implementację zwykłego wyszukiwania i wyszukiwania binarnego i coś mi nie hula. Tzn. niby program rusza, wyniki zwraca, ale coś tam jest nie tak. Ogólnie domyślam się, że jest tam masa błędów, ale ciężko mi wyłapać. Chciałby ktoś zerknąć i naprowadzić mnie na miejsca gdzie są błędy? To, że nie powinno się polskich nazw używać to wiem :D.
1
  • Najlepsze
  • Wszystkie komentarze
paziu
@baalder363: poki co najwiekszy problem to taki, ze nie ma co dzialac, bo nie ma kodu
4
G.....g
G.....g
@baalder363: spoko, pierwszemu udało się po 16 latach ( ͡° ͜ʖ ͡°).

Knuth points out that while the first binary search was published in 1946, the first published binary search without bugs did not appear until 1962


źródło: Jon Bentley, "Programming pearls", cytat:
https://www.cs.cmu.edu/~fp/courses/15122-f10/lectures/03-binsearch.pdf
4
pkh
@baalder363: wrzuc kod
1
baalder363
@GitLog: Czuję w tym jakieś pocieszenie :D.
1
s.....e
s.....e
@baalder363: Gościu. Zobacz sobie najpierw jak wypisujesz tablice dziwacznie. Nie dostajesz tego co tam naprawdę jest tylko losowe liczby. Popraw sobie i zobacz czy reszta jest okej.
Powinno być:

for (int i : tabSearch) {
System.out.println(i);
}

a nie tabSearch[i]
1
baalder363
@szwe: Dzięki.
1
Wyrewolwerowanyrewolwer
@baalder363:

Przerabiałem, ale szczerze mówiąc strasznie chaotycznie pisałem ten program, bo było spore tempo


W takich momentach używa się Arrays::binarySearch
1
Wyrewolwerowanyrewolwer
@baalder363: Swoją drogą gorąco polecam czasami zerknąć do implementacji metod które używasz (IntelliJ daje wygodne narzędzia do tego).
No, poza java.util.Date które jest tragiczne (i kilka innych), ale no ogólnie można fajnych rzeczy nauczyć się.
1
Wyrewolwerowanyrewolwer
@baalder363: Tak, dokładnie to.
Skoro bez gotowców, to ktoś tam już wyżej polecił Ci perełki programowania do przeczytania.
Nie dość że mocno omawia binary searcha, to quick searcha też dość dokładnie przerabia.
Jeżlei dobrze pamiętam to jest opisana technika jak praktycznie zlikwidować to że w pesymistycznym przypadku qsort jest O(n^2)
1
baalder363
@paziu: @pkh: pastebin?
0
s.....e
s.....e
@baalder363: Najlepiej.
0
baalder363
0
baalder363
@rekoj: Przerabiałem, ale szczerze mówiąc strasznie chaotycznie pisałem ten program, bo było spore tempo. No i miałem to napisać tak byle działało, a kompozycja to sprawa drugorzędna. Jak rozumiem to chodzi ci o to, że zgodnie ze sztuką w klasie main powinny być tylko odpalane testy? A takie wyszukiwanie w oddzielnej klasie, ale też na statycznych metodach jak mam tutaj?
0
r.....j
r.....j
@baalder363: mniej więcej, usunąłem komentarz bo ktoś już Cię naprowadził na rozwiązanie problemu, tak że pytania nie było( ͡° ͜ʖ ͡°)
0
baalder363
@Wyrewolwerowanyrewolwer: No, właśnie o to chodzi, żeby nie korzystać z gotowych implementacji tylko samemu napisać. Przydać się w sumie nie przyda, ale pozwala nauczyć się myśleć. Jeśli chodzi o te gotowe implementacje, to mówisz o tym jak trzymasz ctrl i klikasz na wybraną metodę w kodzie, tak?
0