PHP面試經典演算法題整理

2021-10-08 11:42:38 字數 2875 閱讀 4830

最近在準備php面試。看了幾個經典的演算法,記錄一下

約瑟夫環(線性代數)

function

king($n

,$m)return$p+

1;}

約瑟夫環(佇列)

function

king($n

,$m)else

$i++;}

return

array_shift

($arr);

}

有一母牛,到4歲可生育,每年一頭,所生均是一樣的母牛,到15歲絕育,不再能生,20歲死亡,問n年後有多少頭牛。

function

cows($n

)array_unshift

($cow

,$new_num);

array_slice

($cow,0

,20);

}return

array_sum

($cow);

}

氣泡排序

function

bubblesort

($arr)}

}return

$arr

;}

快速排序

function

quicksort

($arr

)else

}return

array_merge

(quicksort

($leftarr),

[$key],

quicksort

($rightarr))

;}

插入排序法

function

insertsort

($array)if

($insertindex+1

!==$i)}

}

選擇排序

function

selectsort

($arr

)elseif

($min

>

$value)}

$newarr

=$min

;unset

($arr

[$minkey])

;}$newarr

=current

($arr);

return

$newarr

;}

多程序讀寫同一檔案問題

function

fileread

($file)if

($retry

>=10)

$data

='good'

;fwrite

($fp

,$data);

flock

($fp

,lock_un);

fclose

($fp);

}

讀取資料夾下的檔案

function

dirfile

($dir

)elseif

(is_dir

($dir

.'/'

.$file))

else

}closedir

($source);

return

$filearr

;}

判斷括號閉合,多種型別

function

checkclose

($str)'

,'['

=>

']')

;$queue

=array()

;$len

=strlen

($str);

for($i=

0;$i<

$len;$i

++)elseif

(in_array

($str[$i

],$checkstr))

array_pop

($queue);

}else

}return

empty

($queue);

}

判斷括號閉合,一種括號型別

function

checkcloseone

($str)if

($str[$i

]==')')if(

$d<0)

}if($d

==0)return

true

;return

false

;}

楊輝三角形

function

********($n

)for($i

=2;$i

<=$n;

$i++

)$temp

=1;$base[$i

]=$temp;}

return

$base;}

var_dump

(********(10

));

PHP經典演算法題

面試題 演算法題 1 插入排序 一維陣列 基本思想 每次將乙個待排序的資料元素,插入到前面已經排好序的數列中的適當位置,使數列依然有序 直到待排序資料元素全部插入完為止。示例 初始關鍵字 49 38 65 97 76 13 27 49 j 2 38 38 49 65 97 76 13 27 49 j...

PHP經典演算法題

php學習之路 演算法題 1.使用php描述順序查詢和二分查詢 也叫做折半查詢 演算法,順序查詢必須考慮效率,物件可以是乙個有序陣列 二分查詢 陣列裡查詢某個元素 function bin sch array,low,high,k elseif k array mid else return 1 順...

面試經典題

include include char strcpy char strdest,const char strsrc 將源字串加const表明為輸入引數 bool 型別 if var int 型別 if var 0 float型別 const float epsinon 0.00001 if x e...