2分検索
マシン起動後一回しかでないバグのテストは疲れる。
コンパイルしてテストして再起動して・・・。
再起動してて暇な間に練習。
(defun oserch(bt a) (oserch_ bt a 0 (length bt))) (defun oserch_(bt a low high) (if (> low high) nil (let* ((i (truncate (+ low (/ (- high low) 2)))) (target (nth i bt))) (cond ((equal a target) target) ((> target a) (oserch_ bt a low (1- i))) *1 (T nil)))))