1. 主页
  2. 文档
  3. PHP数据结构与算法
  4. PHP数据结构及算法总结

PHP数据结构及算法总结

断断续续地把这个系列写完了,就像上一个设计模式一样,算法这个系列也是前前后后写了将近有一年的时间。当然,都是在业余或者晚上的时间写完的,所以进度如此地慢。更主要的是,既然要写,总得要自己先弄懂吧,这还真的是有点困难。

所以说,在这一系列的文章中,可能有许多纰漏甚至是错误,这个也欢迎大家随时指正。

继续扩展提高

关于数据结构与算法这门课程,在我的系列文章中,只是简单的入了个门。仅仅从教材来说,就还有许多内容并没有涉及,实在是本人水平有限,大家可以自己再继续深入地学习。

  • 串:字符串、串的匹配(BF、KMP)

  • 树:二叉排序树、平衡二叉树、哈夫曼树、B+树、B-树、红黑树

  • 图:拓扑排序、关键路径

  • 查找:分块查找、黄金查找

  • 排序:希尔排序、树形选择排序、堆排序、归并排序、基数排序、外部排序(多路平衡归并排序、置换-选择排序、最挂归并树)

 

几个问题总结:

循环中$i++  $i–的区别?
$k =10;
$i = 2;
while($k>=$i){
    // $k– 10 9 8 7 6 5 4 3
    // $k++ 3 4 5 6 7 8 9 10 …..
    echo $k–;
}
线性表:删除除数据的写法:
<?php
$arr = [11, 21, 31, 41, 51, 61, 71];
// $a = 10;
// $b = 2;
// while($a>$b){
//     $a–;
//     echo $a;
// }
$arrr= deletei($arr,2);
var_dump($arrr);
//长6 删2   6>2
function deletei($ar,$k){
    $num = count($ar);
    $kt = $num-1;
    //数组的长度界限
    if($k<0 || $k>$num){
        return false;
    }
    //
    while($kt>=$k){
        $k++;
        $ar[$k-1] = $ar[$k];
    }
    unset($ar[$k-1]); //删除除最后一个索引数据。
    return $ar;
}
线性表的数据查询:
<?php
$arr = [11, 21, 31, 41, 51, 61, 71];
echo se($arr,21);
function se($ar,$v){
    $ac = count($ar);
    $kc = $ac-1;
    // if($v<0 || $v>$kc){
    //     return false;
    // }
    for($i=0; $i<=$kc; $i++){
        if($v == $ar[$i] ){
            echo “这个值查询存在”;
            echo $ar[$i];
        }
    }
    return $ar[$i];
}
这篇文章对您有用吗?

我们要如何帮助您?