php语言 百分网手机站

七大常用PHP算法

时间:2020-09-27 17:08:54 php语言 我要投稿

七大常用PHP算法

  php是一种通用开源脚本语言。在php算法里有哪些常用的算法呢?下面小编为大家整理了七大常用PHP算法,希望能帮到大家!

  1、冒泡排序

  2、归并排序

  3、二分查找-递归

  4、二分查找-非递归

  5、快速排序

  6、选择排序

  7、插入排序

  下面一一示例介绍

  1、冒泡排序

  function bubble_sort($arr) {

  $n=count($arr);

  for($i=0;$i<$n-1;$i++){

  for($j=$i+1;$j<$n;$j++) {

  if($arr[$j]<$arr[$i]) {

  $temp=$arr[$i];

  $arr[$i]=$arr[$j];

  $arr[$j]=$temp;

  }

  }

  }

  return $arr;

  }

  2、归并排序

  function Merge(&$arr, $left, $mid,$right) {

  $i = $left;

  $j = $mid + 1;

  $k = 0;

  $temp = array();

  while ($i <= $mid && $j <= $right)

  {

  if ($arr[$i] <= $arr[$j])

  $temp[$k++] = $arr[$i++];

  else

  $temp[$k++] = $arr[$j++];

  }

  while ($i <= $mid)

  $temp[$k++] = $arr[$i++];

  while ($j <= $right)

  $temp[$k++] = $arr[$j++];

  for ($i = $left, $j = 0; $i <= $right; $i++, $j++)

  $arr[$i] = $temp[$j];

  }

  function MergeSort(&$arr, $left, $right)

  {

  if ($left < $right)

  {

  $mid = floor(($left + $right) / 2);

  MergeSort($arr, $left, $mid);

  MergeSort($arr, $mid + 1, $right);

  Merge($arr, $left, $mid, $right);

  }

  }

  3、二分查找-递归

  functionbin_search($arr,$low,$high,$value) {

  if($low>$high)

  return false;

  else {

  $mid=floor(($low+$high)/2);

  if($value==$arr[$mid])

  return $mid;

  elseif($value<$arr[$mid])

  returnbin_search($arr,$low,$mid-1,$value);

  else

  returnbin_search($arr,$mid+1,$high,$value);

  }

  }

  4、二分查找-非递归

  functionbin_search($arr,$low,$high,$value) {

  while($low<=$high) {

  $mid=floor(($low+$high)/2);

  if($value==$arr[$mid])

  return $mid;

  elseif($value<$arr[$mid])

  $high=$mid-1;

  else

  $low=$mid+1;

  }

  return false;

  }

  5、快速排序

  function quick_sort($arr) {

  $n=count($arr);

  if($n<=1)

  return $arr;

  $key=$arr[0];

  $left_arr=array();

  $right_arr=array();

  for($i=1;$i<$n;$i++) {

  if($arr[$i]<=$key)

  $left_arr[]=$arr[$i];

  else

  $right_arr[]=$arr[$i];

  }

  $left_arr=quick_sort($left_arr);

  $right_arr=quick_sort($right_arr);

  return array_merge($left_arr,array($key),$right_arr);

  }

  6、选择排序

  function select_sort($arr) {

  $n=count($arr);

  for($i=0;$i<$n;$i++) {

  $k=$i;

  for($j=$i+1;$j<$n;$j++) {

  if($arr[$j]<$arr[$k])

  $k=$j;

  }

  if($k!=$i) {

  $temp=$arr[$i];

  $arr[$i]=$arr[$k];

  $arr[$k]=$temp;

  }

  }

  return $arr;

  }

  7、插入排序

  function Sort($arr) {

  $n=count($arr);

  for($i=1;$i<$n;$i++) {

  $tmp=$arr[$i];

  $j=$i-1;

  while($arr[$j]>$tmp) {

  $arr[$j+1]=$arr[$j];

  $arr[$j]=$tmp;

  $j--;

  if($j<0)

  break;

  }

  }

  return $arr;

  }

【七大常用PHP算法】相关文章:

PHP红包算法11-08

PHP经典算法题11-06

php经典算法介绍08-21

PHP排序算法类讲解11-23

PHP可逆加密解密算法11-10

PHP几个经典算法题08-22

PHP算法学习之分治法11-13

php算法学习之动态规划11-11

PHP四种基本排序算法11-04