十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
需要学习数据库结构
创新互联专注为客户提供全方位的互联网综合服务,包含不限于做网站、成都网站设计、凉州网络推广、小程序制作、凉州网络营销、凉州企业策划、凉州品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联为所有大学生创业者提供凉州建站搭建服务,24小时服务热线:028-86922220,官方网址:www.cdcxhl.com
因为PHP涉及到对数据库的查询、插入、追加、删除等操作
所以必须学习数据库操作语句
关于算法这个东西很广义
你也需要学习一些常用的数据处理方式,也就是算法,PHP里一般叫自定义方法或自定义函数
同样的一个方法,老手可以用最短最简洁的几行代码实现,而新手则可能用十几行或几十行甚至上百行的代码才实现,这对于程序的运行速度和效率都有很大影响的,这个是算法的不同
我以上说的算法是狭义的PHP范围内的一部分意思
复制代码
代码如下:
?php
/**
*
三元组
Triplet
*
*/
class
Triplet
{
private
$_data
=
null;
//
初始化三元组
public
function
init($val1,$val2,$val3)
{
$this-_data[0]
=
$val1;
$this-_data[1]
=
$val2;
$this-_data[2]
=
$val3;
return
true;
}
//
销毁三元组
public
function
destroy()
{
unset($this-_data);
return
true;
}
//
返回第$key的值
public
function
get($key)
{
if($key
1
||
$key
3)
return
false;
return
$this-_data[$key
-
1];
}
//
设置第$key元的值为$val
public
function
put($key,$val)
{
if($key
1
||
$key
3)
return
false;
$this-_data[$key
-
1]
=
$val;
return
true;
}
//
是否按升序排序
public
function
isAscending()
{
return
($this-_data[0]
=
$this-_data[1])
($this-_data[1]
=
$this-_data[2]);
}
//
是否按降序排序
public
function
isDescending()
{
return
($this-_data[0]
=
$this-_data[1])
($this-_data[1]
=
$this-_data[2]);
}
//
获取最大值
public
function
max()
{
return
($this-_data[0]
=
$this-_data[1])?
($this-_data[0]
=
$this-_data[2])?
$this-_data[0]
:
$this-_data[2]
:
($this-_data[1]
=
$this-_data[2])?
$this-_data[1]
:
$this-_data[2];
}
//
获取最小值
public
function
min()
{
return
($this-_data[0]
=
$this-_data[1])?
($this-_data[0]
=
$this-_data[2])?
$this-_data[0]
:
$this-_data[2]
:
($this-_data[1]
=
$this-_data[2])?
$this-_data[1]
:
$this-_data[2];
}
}
//
$objTriplet
=
new
Triplet();
echo
"init:";var_dump($objTriplet-init(1,2,3));
echo
"br/";
echo
"get
1:";var_dump($objTriplet-get(1));
echo
"br/";
echo
"get
4:";var_dump($objTriplet-get(4));
echo
"br/";
//
false
echo
"put
3,4:";var_dump($objTriplet-put(3,4));
echo
"br/";
echo
"max:";var_dump($objTriplet-max());
echo
"br/";
echo
"min:";var_dump($objTriplet-min());
echo
"br/";
echo
"isAscending:";var_dump($objTriplet-isAscending());
echo
"br/";
echo
"isDescending:";var_dump($objTriplet-isDescending());
echo
"br/";
?
程序=数据结构和算法!!!
从你开始写php的时候就已经开始用到数据结构和算法,像生命的变量就是最简单的数据结构,你写的每一行代码都可以理解为最简单的算法(更专业的算法可以去看算法介绍的书籍).
C语言是所有高级编程语言的入门语言,所以数据结构中算法一般都使用C语言来表示,这样大家都能看懂。学习数据结构和算法是与语言无关的,C语言只是它实现的一种方式,不用太在乎的。建议你把C语言的基础知识学习一下,这样看起来就不会太累了。
数据结构是在整个计算机科学与技术领域上广泛被使用的术语。它用来反映一个数据的内部构成,即一个数据由那些成分数据构成,以什么方式构成,呈什么结构。数据结构有逻辑上的数据结构和物理上的数据结构之分。逻辑上的数据结构反映成分数据之间的逻辑关系,而物理上的数据结构反映成分数据在计算机内部的存储安排。数据结构是数据存在的形式。 数据结构是信息的一种组织方式,其目的是为了提高算法的效率,它通常与一组算法的集合相对应,通过这组算法集合可以对数据结构中的数据进行某种操作。
使用php实现的基本的数据结构和算法,什么二叉树、二叉搜索树、AVL树、B树、链表和常见排序、搜索算法等等,而且全部是使用面向对象来实现的,确是是很强。
复制代码
代码如下:
?php
/**
*
快速排序
quick
sort
*
**/
function
sort_quick($arrData)
{
if(empty($arrData)
||
!is_array($arrData))
return
false;
$flag
=
$arrData[0];
$len
=
count($arrData)
-
1;
if($len
==
0)
return
$arrData;
//
如果只有一个数据的数组直接返回
$arrLeft
=
array();
$arrRight
=
array();
$len_l
=
0;
$len_r
=
0;
for($i
=
1;
$i
=
$len;$i++)
{
if($arrData[$i]
$flag)
{
$arrLeft[$len_l]
=
$arrData[$i];
//
小于的放左边
$len_l++;
}
else
{
$arrRight[$len_r]
=
$arrData[$i];
//
大于等于的放右边
$len_r++;
}
}
//
合并数组
$arrResult
=
array();
if($len_l)
{
$arrLeft
=
sort_quick($arrLeft);
for($i
=
0;$i
=
$len_l
-
1;
$i++
)
{
$arrResult[$i]
=
$arrLeft[$i];
}
}
$arrResult[$len_l]
=
$flag;
$len_l++;
if($len_r)
{
$arrRight
=
sort_quick($arrRight);
for($i
=
0;$i
=
$len_r
-
1;
$i++
)
{
$arrResult[$len_l]
=
$arrRight[$i];
$len_l++;
}
}
echo
"==
",$flag,"
==========================================br/";
echo
"data
:
",print_r($arrData),"br/";
echo
"filter
left:
",print_r($arrLeft),"br/";
echo
"filter
right:
",print_r($arrRight),"br/";
echo
"return
:
",print_r($arrResult),"br/";
return
$arrResult;
}
//$list
=
array(4,3,2,1,5,7,3,7);
$list
=
array(4,51,6,73,2,5,9,33,50,3,4,6,1,4,67);
$list
=
sort_quick($list);
echo
"pre";print_r($list);