php常见算法
冒泡排序算法 基本思想:
对需要排序的数组从后往前(逆序)进行多遍的扫描,当发现相邻的两个数值的次序与排序要求的规则不一致时,就将这两个数值进行交换。这样比较小(大)的数值就将逐渐从后面向前面移动。
快速排序 基本思想:
在数组中挑出一个元素(多为第一个)作为标尺,扫描一遍数组将比标尺小的元素排在标尺之前,将所有比标尺大的元素排在标尺之后,通过递归将各子序列分别划分为更小的序列直到所有的序列顺序一致。
$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(3,1,2);
var_dump(quick_sort($arr));
?>
二分查找 【php常见算法】基本思想:
假设数据是按升序排序的,对于给定值x,从序列的中间位置开始比较,如果当前位置值等于x,则查找成功;若x小于当前位置值,则在数列的前半段中查找;若x大于当前位置值则在数列的后半段中继续查找,直到找到为止。(数据量大的时候使用)
顺序查找 基本思想:
从数组的第一个元素开始一个一个向下查找,如果有和目标一致的元素,查找成功;如果到最后一个元素仍没有目标元素,则查找失败。
遍历文件夹
写一个函数,尽可能高效的从一个标准url中取出文件的扩展名
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']);
// basename函数返回路径中的文件名部分
$ext = explode('.', $file);
return $ext[count($ext)-1];
}
print(getExt('http://www.sina.com.cn/abc/de/fg.html.php?id=1'));
?>
推荐阅读
- 画解算法(1.|画解算法:1. 两数之和)
- Guava|Guava RateLimiter与限流算法
- thinkphp|thinkphp 3.2 如何调用第三方类库
- 唱歌教学(导致嗓音损坏的几个常见的错误唱歌方法!)
- CGI,FastCGI,PHP-CGI与PHP-FPM
- Hive常见问题汇总
- 一个选择排序算法
- SG平滑轨迹算法的原理和实现
- 《算法》-图[有向图]
- JS常见数组操作补充