- 论坛徽章:
- 1
|
我也来做几道试试看。环境:Linux 2.6.32-24-generic #43-Ubuntu GNU/Linux
------------------------------------------------------------------第二题-------------------------------------------------------------------------
<?php
/*2.用二分法查找所需元素
*
* (C) rubylc_Unix
*/
function Bsearch($a, $input)
{
$head = 0;
$tail = count($a) - 1;//尾部定位
while($head <= $tail)
{
$mid = intval(($head + $tail) / 2);
if($input < $a[$mid])
$tail = $mid - 1;
else if($input > $a[$mid])
$head = $mid + 1;
else
return $mid;
}
return -1;
}
$arr = array( 4, 6, 8, 12, 20 ,25, 100);
$mid = Bsearch($arr, 25);
printf("the number $arr[$mid] is the %dth number of the array!", $mid + 1);
?>
-----------------------------------------------------------第三题---------------------------------------------------------------------------
<?php
/*
*3.打印一个杨辉三角
*
*(C) rubylc_Unix
*/
function triangle_yang($floornum)
{
$array = array();
for($i = 0; $i < $floornum; $i++)
for($j = 0; $j <= $i; $j++)
{
if(($j ==0) || ($i == $j))
$array[$i][$j] = 1;
else
$array[$i][$j] = $array[$i - 1][$j - 1] + $array[$i - 1][$j];
}
for($i = 0; $i < $floornum; $i++)
{
for($j = 0; $j <= $i; $j++)
{
printf("%8d", $array[$i][$j]);
}
echo "<Br>";
}
}
$num = 10;
triangle_yang($num);
?>
-------------------------------------------------------------第二十四题------------------------------------------------------------------
<?php
/*24.三个数字求最大值
*
*(C) rubylc_Unix
*/
function getMax($num1, $num2, $num3)
{
return (($num1 > $num2 ? $num1 : $num2) > $num3)?($num1 > $num2 ? $num1 : $num2) : $num3;
}
echo getMax(61, 12, 24);
?>
--------------------------------------------------------第二十七题-----------------------------------------------------------------------
<?php
/*27.数组排序(从小到大)
*
*(C) rubylc_Unix
*/
function sortnumber($a)
{
$len = count($a);//获取数组长度以便排序
for($i = 1;$i < $len; $i++ )//使用的是直接插入排序
{
$temp = $a[$i];
$j = $i - 1;
while($j >= 0 && $temp < $a[$j])
{
$a[$j + 1] = $a[$j];
$j--;
}
$a[$j + 1] = $temp;
}
return $a;
}
$a = array(4, 3, 8, 9, 2);
$a = sortnumber($a);
for($i = 0; $i < count($a); $i++)
{
printf("%5d", $a[$i]);
echo "<Br>";
}
?>
-------------------------------------------------------------第三十二题------------------------------------------------------------------
<?php
/*32.排序
*
*(C) rubylc_Unix
*/
function SelectSort($arr, $count)
{
for($i = 0; $i < $count -1; $i++)
{
$k = $i;
for($j = $i + 1; $j < $count; $j++)//用的是直接选择排序
if($arr[$j] < $arr[$k])
$k = $j;
if($k != $i)
{
$temp = $arr[$i];
$arr[$i] = $arr[$k];
$arr[$k] = $temp;
}
}
return $arr;
}
$arr = array(6, 8, 7, 9, 0, 1, 3, 2, 4, 5);
$arr = SelectSort($arr, 10);
for($i = 0; $i < 10; $i++)
printf("%5d--->", $arr[$i]);
?>
----------------------------------------------------------------------------------------------------------------------------------------------- |
|