亚洲精品中文字幕无乱码_久久亚洲精品无码AV大片_最新国产免费Av网址_国产精品3级片

php語言

七大常用PHP算法

時(shí)間:2024-11-10 14:34:55 php語言 我要投稿
  • 相關(guān)推薦

七大常用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算法】相關(guān)文章:

PHP的樹形結(jié)構(gòu)算法07-06

php:樹形結(jié)構(gòu)的算法實(shí)例10-18

PHP快速排序算法詳解08-30

PHP實(shí)現(xiàn)抽獎(jiǎng)概率算法09-13

PHP排序算法類講解07-18

PHP快速排序算法解析10-09

PHP算法學(xué)習(xí)之分治法09-13

PHP實(shí)現(xiàn)猴子選大王問題的算法10-28

PHP中獎(jiǎng)概率的抽獎(jiǎng)算法程序代碼實(shí)例08-05

PHP使用遞歸算法無限遍歷數(shù)組示例05-20