没有合适的资源?快使用搜索试试~ 我知道了~
php编程试题
需积分: 10 3 下载量 167 浏览量
2013-10-19
15:18:29
上传
评论
收藏 223KB DOC 举报
温馨提示
试读
38页
php的大晒编程题目
资源推荐
资源详情
资源评论
1:在一组数中,要求插入一个数,暗其原来的顺序插入,维护原来的排序方式
<?php
<?php
function func($arr,$val)
function func($arr,$val)
{
{
$len=count($arr);
$len=count($arr);
if($len==0)
if($len==0)
$arr=$val;
$arr=$val;
else {
else {
$i=0;
$i=0;
while($arr[$i]==$arr[$i+1])
while($arr[$i]==$arr[$i+1])
$i++;
$i++;
if($arr[$i]>$arr[$i+1])
if($arr[$i]>$arr[$i+1])
{
{
for($i=0;$arr[$i]>$val;$i++);
for($i=0;$arr[$i]>$val;$i++);
for($j=$len;$j>=$i;$j--)
for($j=$len;$j>=$i;$j--)
{
{
$arr[$j]=$arr[$j-1];
$arr[$j]=$arr[$j-1];
}
}
$arr[$i]=$val;
$arr[$i]=$val;
}
}
else
else
{
{
for($i=0;$arr[$i]<$val;$i++);
for($i=0;$arr[$i]<$val;$i++);
for($j=$len;$j>=$i;$j--)
for($j=$len;$j>=$i;$j--)
{
{
$arr[$j]=$arr[$j-1];
$arr[$j]=$arr[$j-1];
}
}
$arr[$i]=$val;
$arr[$i]=$val;
}
}
}
}
return $arr;
return $arr;
}
}
$arr = array(1, 3, 5, 10, 20);
$arr = array(1, 3, 5, 10, 20);
$val = 8;
$val = 8;
var_dump(func($arr,$val));
var_dump(func($arr,$val));
?>
?>
2:用二分法在一个数组中查找你所需元素
<?php
<?php
class ChinaUnix_Util
class ChinaUnix_Util
{
{
// {{{ properties
// {{{ properties
// }}}
// }}}
// {{{ array_binarysearch()
// {{{ array_binarysearch()
/**
/**
*
*
二分法查找
二分法查找
*
*
* @param int $needle
* @param int $needle
* @param array $haystack
* @param array $haystack
*
*
* @return int $pos
* @return int $pos
*/
*/
public static function array_binarysearch(array $haystack,$needle)
public static function array_binarysearch(array $haystack,$needle)
{
{
if(empty($haystack)){
if(empty($haystack)){
return -1;
return -1;
}
}
sort($haystack); //
sort($haystack); //
升序排序整理
升序排序整理
$start = 0;
$start = 0;
$end = count($haystack)-1;
$end = count($haystack)-1;
while ($start <= $end) {
while ($start <= $end) {
$mid = floor(($start + $end) / 2);
$mid = floor(($start + $end) / 2);
if ($haystack[$mid] < $needle){
if ($haystack[$mid] < $needle){
$start = $mid + 1;
$start = $mid + 1;
}elseif($haystack[$mid] > $needle){
}elseif($haystack[$mid] > $needle){
$end = $mid-1;
$end = $mid-1;
}else{
}else{
return $mid;
return $mid;
}
}
}
}
return -1;
return -1;
}
}
// }}}
// }}}
}
}
// Usage:
// Usage:
$queue = array(1,2,3,5,23,9,20,18,35,100);
$queue = array(1,2,3,5,23,9,20,18,35,100);
$needle = 23;
$needle = 23;
$pos = ChinaUnix_Util::array_binarysearch($queue,$needle);
$pos = ChinaUnix_Util::array_binarysearch($queue,$needle);
print_r($pos);
print_r($pos);
echo PHP_EOL;
echo PHP_EOL;
?>
?>
3:打印一个杨辉三角
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
<?php
<?php
function triangle($n){
function triangle($n){
for($i=0;$i<$n;$i++){
for($i=0;$i<$n;$i++){
for($j=0;$j<=$i;$j++){
for($j=0;$j<=$i;$j++){
if($j==0||$i==$j){
if($j==0||$i==$j){
$arr[$i][$j]=1;
$arr[$i][$j]=1;
}else {
}else {
$arr[$i][$j]=$arr[$i-1][$j]+$arr[$i-1][$j-1];
$arr[$i][$j]=$arr[$i-1][$j]+$arr[$i-1][$j-1];
}
}
echo $arr[$i][$j]."\t";
echo $arr[$i][$j]."\t";
}
}
echo "<br>";
echo "<br>";
}
}
}
}
triangle(6);
triangle(6);
?>
?>
4:使用 PHP 描述冒泡排序和快速排序算法,对象可以是一个数组
<?php
<?php
//
//
冒泡排序(一维数组)
冒泡排序(一维数组)
function bubble_sort($arr){
function bubble_sort($arr){
$count = count($arr);
$count = count($arr);
if ($count <= 0) return false;
if ($count <= 0) return false;
for($i=0; $i<$count; $i++){
for($i=0; $i<$count; $i++){
for($j=$count-1; $j>$i; $j--){
for($j=$count-1; $j>$i; $j--){
if ($arr[$j] < $arr[$j-1]){
if ($arr[$j] < $arr[$j-1]){
$tmp = $arr[$j];
$tmp = $arr[$j];
$arr[$j] = $arr[$j-1];
$arr[$j] = $arr[$j-1];
$arr[$j-1] = $tmp;
$arr[$j-1] = $tmp;
}
}
} }
} }
return $arr;
return $arr;
}
}
//
//
使用实例
使用实例
$_array = array('5', '8' ,'5' ,'6' ,'9' ,'3' ,'2' ,'4');
$_array = array('5', '8' ,'5' ,'6' ,'9' ,'3' ,'2' ,'4');
$_array = bubble_sort($_array);
$_array = bubble_sort($_array);
print_r ($_array);
print_r ($_array);
?>
?>
5:写一个二维数组排序算法函数,能够具有通用性
<?php
<?php
function mutilSort($data,$key,$sort = 'desc',$type)
function mutilSort($data,$key,$sort = 'desc',$type)
{
{
$tmp=array();
$tmp=array();
while(list($k,$v)=each($data)){
while(list($k,$v)=each($data)){
$tmp[$k]=$v[$key];
$tmp[$k]=$v[$key];
}
}
if($sort=='desc'){
if($sort=='desc'){
if ($type == "num"){
if ($type == "num"){
array_multisort($tmp,SORT_DESC, SORT_NUMERIC,$data);
array_multisort($tmp,SORT_DESC, SORT_NUMERIC,$data);
}else {
}else {
array_multisort($tmp,SORT_DESC, SORT_STRING,$data);
array_multisort($tmp,SORT_DESC, SORT_STRING,$data);
}
}
}else{
}else{
if ($type == "num"){
if ($type == "num"){
array_multisort($tmp,SORT_ASC, SORT_NUMERIC,$data);
array_multisort($tmp,SORT_ASC, SORT_NUMERIC,$data);
}else {
}else {
array_multisort($tmp,SORT_ASC, SORT_STRING,$data);
array_multisort($tmp,SORT_ASC, SORT_STRING,$data);
}
}
}
}
return $data;
return $data;
}
}
$chiArr[]=array('name'=>'
$chiArr[]=array('name'=>'
好汉
好汉
','cnt'=>1);
','cnt'=>1);
$chiArr[]=array('name'=>'
$chiArr[]=array('name'=>'
这个
这个
','cnt'=>2);
','cnt'=>2);
$chiArr[]=array('name'=>'
$chiArr[]=array('name'=>'
什么
什么
','cnt'=>3);
','cnt'=>3);
$chiArr[]=array('name'=>'
$chiArr[]=array('name'=>'
阿里
阿里
','cnt'=>4);
','cnt'=>4);
$data=mutilSort($chiArr,'cnt','desc','num');
$data=mutilSort($chiArr,'cnt','desc','num');
print_r($data);
print_r($data);
?>
?>
6:写一个 function 实现数组内每个元素之间加法的递代运算?
注:数组元素全部为自然数.
例:
$data=array(1,2,3);
程序要求打印出数组每个数组元素相互之间各种可能性加法(包括元素自已本身加法)
1+1=2,1+2=3,1+3=5,
2+2=4,2+3=5,
3+3=6
打印出以下结果
Array
(
[0] => Array
(
[0] => 2
[1] => 3
[2] => 4
)
[1] => Array
(
[1] => 4
[2] => 5
)
[2] => Array
(
[2] => 6
)
)
<?php
<?php
$data = array(1,2,3);
$data = array(1,2,3);
$res = array();
$res = array();
calc($data, $result);
calc($data, $result);
echo '<pre>';
echo '<pre>';
print_r($result);
print_r($result);
function calc($data, &$res)
function calc($data, &$res)
{
{
if(count($data)<1) return;
if(count($data)<1) return;
剩余37页未读,继续阅读
资源评论
fire-ox
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功