针对php面试题中的问题的一些个人见解

34 篇文章 0 订阅
28 篇文章 0 订阅

翻了翻网上的php面试题,看到了一些问题,提出了个人的一些见解!

  1. 冒泡排序的优化!
    看网上的php面试题有冒泡排序,细察之下发现可以优化。
    原代码:
<?php
function sort_Up ( $arr )
{
    if( !is_array($arr)  )
    {
        //传进来不是数组就return  false;
        return  false;
    }
    for($i=0;$i<count($arr);$i++)
    {
        for($j=0;$j<count($arr)-1;$j++)
        {
            if(  $arr[$j]> $arr[$j+1]  )
            {//如果数组角标小的数组的值大于数组角标大的数组的值则交换他们的值,实现冒泡
                $temp = $arr[$j];
                $arr[$j] = $arr[$j + 1];
                $arr[$j + 1] = $temp;
            }
        }
    }
    return $arr;
}

var_dump(sort_Up ( [3,2,1] ));//打印出来是123
?>

这上面的这个程序中可以看到,3个数(count( arr)=3, i<3;第二层$j<2.
流程图:
这里写图片描述
可以看到,里层多运行了几次循环。 j i的增加是逐渐减少的,因为数组中有序的元素个数在增加,无序的元素的个数在减少。
修改后的代码:


function sort_Up ( $arr )
{
    if( !is_array($arr)  )
    {
        //传进来不是数组就return  false;
        return  false;
    }
    for($i=0;$i<count($arr);$i++)
    {
        for($j=0;$j<count($arr)-1-$i;$j++)//注意此处
        {
            if(  $arr[$j]> $arr[$j+1]  )
            {
                $temp = $arr[$j];
                $arr[$j] = $arr[$j + 1];
                $arr[$j + 1] = $temp;
            }
        }
    }
    return $arr;
}

var_dump(sort_Up ( [3,2,1] ));

  1. 变量的使用。
    在增加类的属性时,变量的定义有多余,或者说有的代码写的很没有必要。比如:
    class tree{
            public $handle=null;
            //...
    }
    $tree = tree();
    $new = $tree->data;
    $tree->data="213";

在这里的变量 newnull tree->data=”213”.效果一样的!
后面接着看,,,,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值