常见编程题


1、冒泡程序:

<?php
//冒泡排序(一维数组)
function bubble_sort($arr){
//计算出数组元素的个数
$count = count($arr);
// 如果元素个数小于或者等于0则返回假
if ($count <= 0){
return false;
}
for($i=0; $i<$count; $i++){
for($j=$count-1; $j>$i; $j--){
if ($arr[$j] < $arr[$j-1]){
$tmp = $arr[$j];
$arr[$j] = $arr[$j-1];
$arr[$j-1] = $tmp;
 }
 }         
}
return $arr;
}
//使用实例
   $_array = array('5', '8' ,'5' ,'6' ,'9' ,'3' ,'2' ,'4');
$_array = bubble_sort($_array);
print_r ($_array);
  ?>


<?php
echo "<br/>";
function BubbleSort($str)
//定义一个名为BubbleSort的函数,它有一个参数叫$str,这个参数必须是一个数组,这个数组里包含需要排序的一系列字符。
{
for ($i=0;$i<count($str);$i++) //count($str)的功能为统计数组中的元素数量,并返回这个数量值
//第一层循环,外层循环,由于冒泡排序的原理为,每次都找最小(或每次都找最大,本例是演示每次都找最小的情况)的那个字符,找出一个最小(“大”)的字符算一次循环
{
for ($j=count($str)-2;$j>=$i;$j--)
//内层循环,本次循环控制找最小(“大”)数的操作,由于每次要找出最大的数,必须拿一个数和每一个数对比,所以也是一个内层的循环操作
{
if($str[$j+1]<$str[$j])
//比较,是$j+1位置的字符大,还是$j位置的字符比较大,如果$j位置的字符比较大,那么交换$str[$j+1]和$str[$j]以保证排列在前面的字符更小
{
$tmp = $str[$j+1]; //交换两个位置的东西,需要三个空位才能完成,就像交换一杯可乐和一杯牛奶需要另一个空杯子一样,$tmp可以说就是空杯子
$str[$j+1]=$str[$j];//类似,有一杯牛奶,一杯可乐,我们想用牛奶杯装可乐,可乐杯装牛奶的话,就得进行这样的操作……
$str[$j]=$tmp;//整个交换的过程可以描述为:先将牛奶倒入空杯,再将可乐倒入牛奶杯,然后再将原来空杯里的牛奶倒入可乐杯
}
}//内层循环每执行一次,就会多找出一个“最小”的字符(除了前面循环中已经找过了的)
}//数组里有N个字符的话,循环就重复N-1次,这样才能完成排序
return $str; //将排序后的结果返回,返回后跳出函数体,$str变量在内存中消失,而BubbleSort($str)的值就是$str所返回的值
}//函数体定义完成标志我们称之为 end of function BubbleSort($str)
$str = array(3,6,1,5,9,0,4,6,11);//组出一个存放随机序列的若干数字的数组
print_r(BubbleSort($str)); //调用函数体
?>

2、给你三个数,写程序求出其最大值。

    <?php
        function getMax($a,$b,$c){
             $max = $a;
             if ($b > $max){
                  $max = $b;
             }
             if ($c > $max){
                 $max = $c;
             }
             return $max;
        }
        echo getMax(3,2,15);
    ?>

switch的使用案例:

<?php
$a ='5';
switch ($a){
    case 1:
        echo date("Y-m-d");
    break;
    case 2:
        echo "2";
    break;
    case 3:
        echo "3";
    break;
    default:
        echo "没有此数";
}
?>







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值