| 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>");
?>
|
| [목차] |


