Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- to bin.search :lista :t
- (local "s "e "koraci "c "el)
- make "l (sort :lista)
- make "s 0
- make "e count :l
- make "koraci []
- while [ :s < :e ] [
- ;; racunamo sredinu intervala
- make "c int ((:s + :e)/2)
- ;; "izvlacimo" sredisnji element
- make "el item (:c+1) :l
- ;; biljezimo korak
- make "koraci lput :el :koraci
- ;; ako je sredisnji element jednak trazenom, pretraga je gotova
- ifelse :el = :t [
- pr :koraci
- op "true
- ] [
- ;; u kojem podintervalu bi se element mogao nalaziti?
- ifelse (:el < :t) [
- ; s desne strane sredisnjeg elementa
- make "s :c
- ][
- ;; s lijeve strane sredisnjeg elementa
- make "e :c
- ]
- ]
- ]
- ;; ispisi korake, element nije pronadjen
- pr :koraci
- op "false
- end
- ;;;;;;;;;;;;;
- ;; primjer ;;
- ;;;;;;;;;;;;;
- make "l [1 10 3 4 7 6 8 9 2 5]
- repeat (count :l) [
- pr bin.search :l (pick :l)
- ]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement