Pagini recente » Diferente pentru problema/fft intre reviziile 24 si 25 | Diferente pentru algoritmiada-2014/runda-3 intre reviziile 6 si 5 | Diferente pentru blog/counter intre reviziile 6 si 7 | Diferente pentru problema/sever intre reviziile 44 si 45 | Diferente pentru blog/cautare-binara intre reviziile 7 si 8
Nu exista diferente intre titluri.
Diferente intre continut:
Mie nu imi place aceasta varianta. Un dezavantaj ar fi ca un programator nou care nu stie trucul o sa inteleaga mai greu codul, si nu stiu daca e la fel de usor de modificat ca sa gasesti succesorul lui x sau ultima aparitie a lui x si asa mai departe.
In 2006, Joshua Bloch, Google Java Architect care a scris algoritmul de cautare binara in java.util.Arrays a descoperit un bug in implementare. Puteti citi in detaliu aici. Pe scurt, lucrand la google el a ajuns sa sorteze siruri mai mari de un miliard de numere. Astfel pasul mid = (lo + hi) / 2 a ajuns sa depaseasca Integer.MAXINT care e 20000... Solutia pentru problema asta e sa folosim mid = lo + (hi - lo) / 2.
Daca v-am suparat cu linkbaitul din titlu :), va mai zic ca in 2006, Joshua Bloch, cel care a scris algoritmul de cautare binara in java.util.Arrays a 'descoperit un bug':http://googleresearch.blogspot.com/2006/06/extra-extra-read-all-about-it-nearly.html in implementare bug care aparea in majoritatea cautarilor binare sau a sortarilor prin interclasare scrise in ultimii 20 de ani. Pe scurt, lucrand la Google el a ajuns sa sorteze siruri de doua miliarde de numere. Astfel pasul mid = (lo + hi) / 2 a ajuns sa depaseasca Integer.MAX_VALUE care e <tex>2^31 - 1</tex>. Putem rezolva bugul folosind mid = lo + (hi - lo) / 2 in loc de mid = (hi + lo) / 2.
Nu exista diferente intre securitate.
Topicul de forum nu a fost schimbat.