断断续续地把这个系列写完了,就像上一个设计模式一样,算法这个系列也是前前后后写了将近有一年的时间。当然,都是在业余或者晚上的时间写完的,所以进度如此地慢。更主要的是,既然要写,总得要自己先弄懂吧,这还真的是有点困难。
所以说,在这一系列的文章中,可能有许多纰漏甚至是错误,这个也欢迎大家随时指正。
继续扩展提高
关于数据结构与算法这门课程,在我的系列文章中,只是简单的入了个门。仅仅从教材来说,就还有许多内容并没有涉及,实在是本人水平有限,大家可以自己再继续深入地学习。
-
串:字符串、串的匹配(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];
}