这些都是真实的IT公司招聘PHP程序员的面试题,这些都是简单的基本算法。包括:冒泡算法、快速排序算法、二分查找算法、顺序算法。
冒泡排序,对象可以是一个数组
01 |
function bubble_sort($array){ |
02 |
$count = count($array); |
06 |
for($i=0; $i<$count; $i++){ |
07 |
for($j=$count-1; $j>$i; $j--){ |
08 |
if ($array[$j] < $array[$j-1]){ |
10 |
$array[$j] = $array[$j-1]; |
快速排序,对象可以是一个数组
01 |
function quick_sort($array) { |
02 |
if (count($array) <= 1){ |
08 |
for ($i=1; $i<count($array); $i++){ |
09 |
if ($array[$i] <= $key){ |
10 |
$left_arr[] = $array[$i]; |
12 |
$right_arr[] = $array[$i]; |
15 |
$left_arr = quick_sort($left_arr); |
16 |
$right_arr = quick_sort($right_arr); |
17 |
return array_merge($left_arr, array($key), $right_arr); |
二分查找
02 |
function bin_sch($array, $low, $high, $k){ |
04 |
$mid = intval(($low+$high)/2); |
05 |
if ($array[$mid] == $k){ |
07 |
}elseif ($k < $array[$mid]){ |
08 |
return bin_sch($array, $low, $mid-1, $k); |
10 |
return bin_sch($array, $mid+1, $high, $k); |
顺序查找
02 |
function seq_sch($array, $n, $k){ |
04 |
for($i=0; $i<$n; $i++){ |
写一个二维数组排序算法函数,可以调用php内置函数,能够具有通用性
01 |
function array_sort($arr, $keys, $order=0) { |
02 |
if (!is_array($arr)) { |
06 |
foreach($arr as $key => $val) { |
07 |
$keysvalue[$key] = $val[$keys]; |
15 |
foreach($keysvalue as $key => $vals) { |
16 |
$keysort[$key] = $key; |
19 |
foreach($keysort as $key => $val) { |
20 |
$new_array[$key] = $arr[$val]; |
原文地址:http://www.springload.cn/springload/detail/326
- 面试常用算法——Longest Palindromic Substring(最长回文子串)
第一种: public static void main(String[] args) { String s = "abcbaaaaabcdcba"; int n,m; Strin ...
- 面试常用算法总结——排序算法(java版)
排序算法 重要性不言而喻,很多算法问题往往选择一个好的排序算法往往问题可以迎刃而解 1.冒泡算法 冒泡排序(Bubble Sort)也是一种简单直观的排序算法.它重复地走访过要排序的数列,一次比较两个 ...
- PHP面试常用算法(推荐)
一.冒泡排序 基本思想: 对需要排序的数组从后往前(逆序)进行多遍的扫描,当发现相邻的两个数值的次序与排序要求的规则不一致时,就将这两个数值进行交换.这样比较小(大)的数值就将逐渐从后面向前面移动. ...
- Java && Python 算法面试常用类以及方法总结
数据结构 逻辑结构上: 包括集合,线性结构,非线性结构. 存储结构: 顺序存储,链式存储,索引存储,散列存储. Java 常见数据结构 大专栏 Java && Python 算法面试 ...
- 编程之法:面试和算法心得(字符串包含java实现)
内容全部来自编程之法:面试和算法心得一书,实现是自己写的使用的是java 题目描述 给定两个分别由字母组成的字符串A和字符串B,字符串B的长度比字符串A短.请问,如何最快地判断字符串B中所有字母是否都 ...
- PHP版常用算法
PHP版常用算法最近准备面试的资料,顺便整理一下以前的基本算法,写个DEMO记录一下 //冒泡//逐行对比,满足条件则交换function bubbleSort($arrData,$sort = 'd ...
- 总结Objective-c常用算法
今天是星期天,想睡到10点起床,结果认为自己太奢侈了,不能这么做,于是把闹钟设置成了6:30:结果终于9:36醒了,起床,无缘无故迟了,好吧,就算太累了吧,周天就原谅自己一回.终于到了中午 ...
- Atitit 编程语言常用算法attilax总结
Atitit 编程语言常用算法attilax总结 1. 编译算法分类and 数据操作算法.1 1.1. Tab driver stat 状态转换表格算法1 1.2. Nest case 词法分析 ...
- GJM : 数据结构 - 轻松看懂机器学习十大常用算法 [转载]
转载请联系原文作者 需要获得授权,非法转载 原文作者将享受侵权诉讼 文/不会停的蜗牛(简书作者)原文链接:http://www.jianshu.com/p/55a67c12d3e9 通过本篇文章可以 ...
随机推荐
- 一个简单的appium脚本
这是一个简单的appium脚本,测试amazon购物过程的,过程包括搜索商品,然后从结果列表中选取中意的商品,然后加入购物车,等等. 它是一个最原始的脚本,对测试元素.数据.报告等未作任何的封装,后面 ...
- selenium IDE & Remote Control & Webdriver
一直忘记写selenium的开始学习的过程,今天趁五一,天气有雨,写下这文章 1.进入selnium官网,了解selenium1,2,grid的区别.下载c#相关的包(使用c#的人非常少) 2.使用I ...
- VTL说明文档
关于这个指南 这个指南是针对Velocity模版语言(VTL)的说明.更多其它的信息,请参考Velocity用户指南(http://velocity.apache.org/engine/release ...
- 转:eclipse导入工程中文乱码问题
eclipse之所以会出现乱码问题是因为eclipse编辑器选择的编码规则是可变的.一般默认都是UTF-8或者GBK,当从外部导入的一个工程时,如果该工程的编码方式与eclipse中设置的编码方式不同 ...
- App是什么,可以分为几类?及其相关解释。
App,是应用程序,Application的缩写,事实上,严格说来,目前市面上的APP大致可分为以下十类,即移动UGC,移动搜索,移动浏览,移动支付,移动广告,移动即时信息,SNS,LBS,AR以及 ...
- python 网络编程(一)---基础
1.理解TCP 1.1 寻址 首先任何基于TCP/IP的网络,每台机器都有唯一的IP地址,只需要知道接受者机器的IP地址,信息就可以传送过去. 其次,TCP通过使用端口号来知道机器究竟是哪个程序应该接 ...
- 在linux上通过JDBC连接ORACLE 时总是出现 java.sql.SQLRecoverableException: IO Error: Connection reset 的问题
如标题所述,经过和度娘沟通了不知道多少遍最后看一篇文章解决, 我是通过执行jar来操作DB的.所以在命令中加了一个参数( 加粗,红色) eg: $JAVA_EXE -Djava.security.eg ...
- poj1848 Tree
.....是我多想了. 我想开f[][0~3],看到百度上的题解都是[0~2]的,我就改了 方程不是特别难想.. f代表最小代价 f[i][0]是子树有环过i f[i][1]是子树除了i都成环了 f[ ...
- BNUOJ-29364 Bread Sorting 水题
题目链接:http://www.bnuoj.com/bnuoj/problem_show.php?pid=29364 题意:给一个序列,输出序列中,二进制1的个数最少的数.. 随便搞搞就行了,关于更多 ...
- centos firefox中文乱码问题
下载两个rpm包 fonts-chinese-3.02-9.6.e15.noarch.rpm fonts-ISO8859-2-75dpi-1.0-17.1.noarch.rpm 然后安装rmp rpm ...