PHP实现的基本数据结构

//--------------------
//基本数据结构
//--------------------

//二分查找(数组里查找某个元素)
functionbin_sch($array,$low,$high,$k ){
if(
$low<=$high ){
$mid=intval(($low+$high)/2 );
if(
$array[$mid]==$k ){
return
$mid ;
}elseif(
$k<$array[$mid ]){
return
bin_sch($array,$low,$mid-1,$k );
}else{
return
bin_sch($array,$mid+1,$high,$k );
}
}
return-
1 ;
}


//顺序查找(数组里查找某个元素)
functionseq_sch($array,$n,$k ){
$array[$n]=$k ;
for(
$i=0;$i<$n;$i ++){
if(
$array[$i]==$k ){
break;
}
}
if(
$i<$n ){
return
$i ;
}else{
return-
1 ;
}
}

//线性表的删除(数组中实现)
functiondelete_array_element($array,$i )
{
$len=count($array );
for(
$j=$i;$j<$len;$j ++){
$array[$j]=$array[$j+1 ];
}
array_pop($array );
return
$array ;
}

//冒泡排序(数组排序)
functionbubble_sort($array )
{
$count=count($array );
if(
$count<=0)returnfalse ;

for(
$i=0;$i<$count;$i ++){
for(
$j=$count-1;$j>$i;$j --){
if(
$array[$j]<$array[$j-1 ]){
$tmp=$array[$j ];
$array[$j]=$array[$j-1 ];
$array[$j-1]=$tmp ;
}
}
}
return
$array ;
}

//快速排序(数组排序)
functionquicksort($array ){
if(
count($array)<=1)return$array ;

$key=$array[0 ];
$left_arr =array();
$right_arr =array();

for(
$i=1;$i<count($array);$i ++){
if(
$array[$i]<=$key )
$left_arr[]=$array[$i ];
else
$right_arr[]=$array[$i ];
}

$left_arr=quicksort($left_arr );
$right_arr=quicksort($right_arr );

return
array_merge($left_arr,array($key),$right_arr );
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值