本片文章中 l o w 是 开 始 下 键 low是开始下键 low是开始下键heigh是结束的下键
冒泡排序
for ($i=0;$i<count($arr);$i++){
for($j=0;$j<count($arr)-$i-1;$j++){
if($arr[$j]<$arr[$j+1]){
$temp = $arr[$j];
$arr[$j] = $arr[$j+1];
$arr[$j+1] = $temp;
}
}
}
return $arr;
}
$arr=array(32,55,677,21,668,97,23);
var_dump(mysort($arr));
快速排序
{
$length = count($arr);
if($length <= 1)
{
return $arr;
}
$base_num = $arr[0];
//初始化两个数组
$left_array = array();//小于标尺的
$right_array = array();//大于标尺的
for($i=1; $i<$length; $i++)
{
if($base_num > $arr[$i])
{
$left_array[] = $arr[$i];
}
else
{
$right_array[] = $arr[$i];
}
}
$left_array = quick_sort($left_array);
$right_array = quick_sort($right_array);
return array_merge($left_array, array($base_num), $right_array);
}
$arr=array(32,55,677,21,668,97,23);
var_dump(quick_sort($arr));
二分查找(前提要先排序)
{
if($low <= $high)
{
$mid = intval(($low + $high)/2);
if($arr[$mid] == $k)
{
return $mid;
}
else if($k < $arr[$mid])
{
return bin_search($arr,$low,$mid-1,$k);
}
else
{
return bin_search($arr,$mid+1,$high,$k);
}
}
return -1;
}
$arr=array(32,55,677,21,668,97,23);
var_dump(bin_search($arr,2,9,21));
遍历一个文件下的所有文件和子文件夹
{
$files = array();
if($handle = opendir($dir))
{
while (($file = readdir($handle))!== false)
{
if($file != '..' && $file != '.')
{
if(is_dir($dir."/".$file))
{
$files[$file]=my_scandir($dir."/".$file);
}
else
{
$files[] = $file;
}
}
}
closedir($handle);
return $files;
}
}
var_dump(my_scandir('../'));
高效从一个标准url中获取出文件的扩展名
{
$arr = parse_url($url);
//'scheme' => string 'http' (length=4)
//'host' => string 'www.sina.com.cn' (length=15)
//'path' => string '/abc/de/fg.php' (length=14)
//'query' => string 'id=1' (length=4)
$file = basename($arr['path']);
$ext = explode('.', $file);
return $ext[count($ext)-1];
}
print(getExt('http://www.sina.com.cn/abc/de/fg.html.php?id=1'));
插入排序
function mySort($arr){
for($i = 1;$i < count($arr);$i++){
for($j = $i;$j > 0;$j--){
if($arr[$j] < $arr[$j-1]){
$t = $arr[$j];
$arr[$j] = $arr[$j-1];
$arr[$j-1] = $t;
}else{
break;
}
}
}
return $arr;
}
var_dump(mySort($arr));
二分查找
$low = 0;
$high = count($arr)-1;
$key = 12;
function search($arr,$low,$high,$key){
while($low <= $high){
$mid = intval(($low+$high)/2);
if($arr[$mid] == $key){
return $mid;
}elseif($arr[$mid] < $key){
$low = $mid +1;
}elseif($arr[$mid] > $key){
$high = $mid -1;
}
}
return -1;
}
var_dump(search($arr,$low,$high,$key));