$array = array(11,3,56,62,21,66,32,78,36,76,39,88,34);
$target = 32;
$beg = 0;
$end = count($array) - 1;
// 二分查找算法,指定数字里面的键是多少
function binSearch($array, $beg, $end, $target)
{
if ($beg <= $end){
var_dump($beg, $end);echo "\n";
$mid = intval(($beg+$end)/2 );
if ($array[$mid] == $target){
return $mid;
}elseif ($target <= $array[$mid]){
return binSearch($array, $beg, $mid-1, $target);
}else{
return binSearch($array,$mid+1, $end-1, $target);
}
}
return false;
}
$find = binSearch($array, $beg, $end, $target);
var_dump($find); 很久之前因为PHP算法和C语言算出的结果不一样,当时写了两个扩展忘记怎么弄的了。
先记录一下找一下资料后续补充完整
使用C语言编写方法
在编译成.so文件
// 最后需要设置PHP.ini扩展位置
extension=/../crc16_data.so
extension=/../helloworld.so
实 习 >> 入门 >> 了解
知道此语言的编程语法的使用和特点,可读懂及配合参与开发
一年到三年 >> 初级 >> 熟悉
使用该编程语言开发过小型的项目
三年到五年 >> 中级 >> 熟练
使用该编程语言开发很多项目或大型项目,并能够运用于心、掌握部分算法以及能够处理各种的问题和bug
五年到十年 >> 高级 >> 精通
研究过相关底层,可以独立开发框架及各内插件SDK,有丰富的大型项目经验以及能解决各种疑难杂症
无 限 == 顶级 == 大神
参与该编程语言开发设计
你满级了吗( ^ _ ^ )
与大家共勉之!
■第一句话,结交“两个朋友”:一个是图书馆,一个是运动场。到运动场锻炼身体, 强健体魄。到图书馆博览群书,不断的“充电”、“蓄电”、“放电”。
■第二句话,培养“两种功夫”:一个是本分,一个是本事。做人靠本分, 做事靠本事。靠“两本”起家靠得住。
■第三句话,乐于吃“两样东西”:一个是吃亏,一个是吃苦。做人不怕吃亏, 做事不怕吃苦。吃亏是福,吃苦是福。
■第四句话,具备“两种力量”:一种是思想的力量,一种是利剑的力量。思想的力量往往战胜利剑的力量,这是拿破仑的名言。一个人的思想走多远,他就有可能走多远。
■第五句话,追求“两个一致”:一个是兴趣与事业一致,一个是爱情与婚姻一致。兴趣与事业一致,就能使你的潜力最大限度地得以发挥。恩格斯说,婚姻要以爱情为基础。没有爱情的婚姻是不道德的婚姻。也不会是牢固的婚姻。
■第六句话,插上“两个翅膀”:一个叫理想,一个叫毅力。如果一个人有了这“两个翅膀”,他就能飞得高,飞得远。
■第七句话,构建“两个支柱”:一个是科学,一个是人文。
■第八句话,配备两个“保健医生”:一个叫运动,一个叫乐观。运动使你生理健康,乐观使你心理健康。日行万步路,夜读十页书。
■第九句话,记住“两个秘诀”:健康的秘诀在早上,成功的秘诀在晚上。爱因斯坦说过:人的差异产生于业余时间。业余时间能成就一个人,也能毁灭一个人。
■第十句话,追求“两个极致”:一个是把自身的潜力发挥到极致,一个是把自己的寿命健康延长到极致。
——精辟!
与大家共勉之!
水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。(例如:1^3 + 3^3+ 5^3 = 153)这篇文章主要介绍了php实现水仙花数的4个示例分享,需要的朋友可以参考下:
示例1:
for($q=1; $q<=9; $q++){
for($w=0; $w<=9; $w++){
for($e=0; $e<=9; $e++){
if($q* $q *$q + $w* $w* $w + $e* $e* $e == 100* $q + 10* $w + $e){
echo "$q $w $e "."<p>";
}
}
}
}
示例2:
function cube($n)
{
return $n * $n * $n;
}
function is_narcissistic ( $n )
{
$hundreds = floor( $n / 100); //分解出百位
$tens = floor( $n / 10 ) % 10; //分解出十位
$ones = floor( $n % 10 ); //分解出个位
return (bool)(cube($hundreds)+cube($tens)+cube($ones) == $n);
}
for ($i = 100; $i < 1000; ++ $i )
{
if ( is_narcissistic($i) )
echo $i."\n";
}