最近在準備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...