ホームページ  >  記事  >  バックエンド開発  >  PHPで実装される基本的なデータ構造

PHPで実装される基本的なデータ構造

巴扎黑
巴扎黑オリジナル
2016-11-30 11:15:182180ブラウズ

//---------------
//基本的なデータ構造
//------ --

//二分探索 (配列内の要素の検索)
functionbin_sch($array,$low,$high,$k){
if($low<=$high){
$mid=intval( ( $low+$high)/2);
if($array[$mid]==$k){
return$mid;
}elseif($k<$array[$mid]){
returnbin_sch($array , $low,$mid-1,$k);
}else{
returnbin_sch($array,$mid+1,$high,$k);
}
}
return-1;
}


/ / 逐次検索 (配列内の要素の検索)
functionseq_sch($array,$n,$k){
$array[$n]=$k;
for($i=0;$iif($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
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;$iif($array[$i]<=$key)
$left_arr[]= $ array[$i];
else
$right_arr[]=$array[$i];
}

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

returnarray_merge($ left_arr ,array($key),$right_arr);
}

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。