注册
其实我可以理解乐天,毕竟韩国是它的国家,所以也请理解我们抵制乐天,因为中国也是我们的国家

PHP工程师面试题之算法题-二分查找、冒泡排序

嗨豆壳技术文章 时间:2015-04-11 13:36:03 [ray]

又是跳槽季,各位攻城狮们,设计湿们~做好功课准备好跳槽了木有,本文提供拍黄片面试题之算法题,助拍黄片的工程师们一臂之力。。

二分查找算法面试题破解。

<?php 
// 二分查找算法
function _2fen($key, $array) {
	$top = count($array) - 1;
	$low = 0;

	while ($low <= $top) {
		$mid = intval(($top+$low)/2);
		if($array[$mid] == $key){
			return $mid;
		}elseif($array[$mid] > $key){
			$top = $mid - 1;
		}else {
			$low = $mid + 1;
		}
	}
}
// 下面是测试代码,答题时可无视之
$arr = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 888);
$position = _2fen(7, $arr);

if($position !== false){
	print("搜索元素的索引是:" . $position . "\n"); 
}else{
	print("没有搜索到元素\n");
}

冒泡排序算法面试题破解。

// 冒泡排序[升序]
function mp1($arr){
	for($i=0;$i<count($arr);$i++){
		for($j=$i+1;$j<count($arr);$j++){
			if($arr[$j-1]>$arr[$j]){
				list($arr[$j-1],$arr[$j])=array($arr[$j],$arr[$j-1]);
			}
		}
	}
	return $arr;
}

// 冒泡排序[降序]
function mp2($arr){
	for($i=0;$i<count($arr);$i++){
		for($j=count($arr)-1;$j>=$i+1;$j--){
			if($arr[$j-1]<$arr[$j]){
				list($arr[$j-1],$arr[$j])=array($arr[$j],$arr[$j-1]);
			}
		}
	}
	return $arr;
}

// 测试算法代码,面试答题请无视
$arr = array(2,1,3,7,5,9);
print_r(mp1($arr));
print_r(mp2($arr));

结尾:祝各位攻城狮们面试成功。马到功成。

标签

本文地址:https://www.hi-docs.com/article/132.html

上一篇:PHP实现文章、评论日期显示几分钟之前几小时之前

下一篇:百度免费IP地址查询API,查询接口