Web Programming >> PHP Programming
|
[목차] |
제3장 PHP에서 꼭 알아두어야 할 함수
11. 예제 : 순차검색, 이분검색 문제1. 순차검색
<? $arr = array( 5,3,6,9,4,2,8,7 ); $key = 9; $n = count($arr); for($i=0; $i < $n; $i++) printf("%d ", $arr[$i] ); for($i=0; $i < $n; $i++) { if($arr[$i] == $key) { break; } } echo("<br>\n"); if($i != $n){ $i++; echo("<br>${key}는 ${i}번째에서 검색 되었습니다.<br>\n"); } else echo("<br>${key}는 찾을 수 없습니다.<br>\n"); ?> 문제1. 이분검색
<? $s = array (5,3,6,9,4,2,8,7); $k = 8; $n = count($s); function bsort(){ global $s,$n; for($i=0; $i < ($n-1); $i++) { for($j = ($i+1); $j < $n; $j++) { if($s[$i] > $s[$j]) { $temp = $s[$j]; $s[$j] = $s[$i]; $s[$i] = $temp; } } } } function location($low,$high){ global $s,$k; if($low > $high) return -1; else { $mid = floor(($low + $high)/2); if($k == $s[$mid]) return $mid; elseif ($k < $s[$mid]) return location($low, $mid - 1); else return location($mid + 1, $high); } } echo("<br>Input Data \t: "); for($i=0;$i<$n;$i++) printf("%d ",$s[$i]); bsort(); echo("<br>Sorting Data \t: "); for($i=0;$i<$n;$i++) printf("%d ",$s[$i]); echo("<br>"); $key = location(0,$n - 1); $key ++; echo("<br>Seach Result : "); if($key > 0) echo("$k is Found(<b> $key </b>).<br>"); else echo("${k} is Not Found.<br>"); ?> |
[목차] |