亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

常用算法PHP版

YuboonaZhang / 1106人閱讀

摘要:下面分享一些最常見(jiàn)的算法,用如何實(shí)現(xiàn)。冒泡排序歸并排序二分查找遞歸二分查找非遞歸快速排序選擇排序插入排序

下面分享一些最常見(jiàn)的算法,用PHP如何實(shí)現(xiàn)。

冒泡排序

function bubble_sort($arr) {

$n=count($arr);
for($i=0;$i<$n-1;$i++){
    for($j=$i+1;$j<$n;$j++) {
        if($arr[$j]<$arr[$i]) {
            $temp=$arr[$i];
            $arr[$i]=$arr[$j];
            $arr[$j]=$temp;
        }
    }
}
return $arr;

}

歸并排序

function Merge(&$arr, $left, $mid, $right) {

$i = $left;
$j = $mid + 1;
$k = 0;
$temp = array();
while ($i <= $mid && $j <= $right) {
    if ($arr[$i] <= $arr[$j])
        $temp[$k++] = $arr[$i++];
    else
        $temp[$k++] = $arr[$j++];
}
while ($i <= $mid)
    $temp[$k++] = $arr[$i++];
while ($j <= $right)
    $temp[$k++] = $arr[$j++];
for ($i = $left, $j = 0; $i <= $right; $i++, $j++)
    $arr[$i] = $temp[$j];

}
function MergeSort(&$arr, $left, $right) {

if ($left < $right) {
    $mid = floor(($left + $right) / 2);
    MergeSort($arr, $left, $mid);
    MergeSort($arr, $mid + 1, $right);
    Merge($arr, $left, $mid, $right);
}

}

二分查找-遞歸

function bin_search($arr,$low,$high,$value) {

if($low>$high)
    return false;
else {
    $mid=floor(($low+$high)/2);
    if($value==$arr[$mid])
        return $mid;
    elseif($value<$arr[$mid])
        return bin_search($arr,$low,$mid-1,$value);
    else
        return bin_search($arr,$mid+1,$high,$value);
}

}

二分查找-非遞歸

function bin_search($arr,$low,$high,$value) {

while($low<=$high) {
    $mid=floor(($low+$high)/2);
    if($value==$arr[$mid])
        return $mid;
    elseif($value<$arr[$mid])
        $high=$mid-1;
    else
        $low=$mid+1;
}
return false;

}

快速排序

function quick_sort($arr) {

$n=count($arr);
if($n<=1)
    return $arr;
$key=$arr[0];
$left_arr=array();
$right_arr=array();
for($i=1;$i<$n;$i++) {
    if($arr[$i]<=$key)
        $left_arr[]=$arr[$i];
    else
        $right_arr[]=$arr[$i];
}
$left_arr=quick_sort($left_arr);
$right_arr=quick_sort($right_arr);
return array_merge($left_arr,array($key),$right_arr);

}

選擇排序

function select_sort($arr) {

$n=count($arr);
for($i=0;$i<$n;$i++) {
    $k=$i;
    for($j=$i+1;$j<$n;$j++) {
       if($arr[$j]<$arr[$k])
           $k=$j;
    }
    if($k!=$i) {
        $temp=$arr[$i];
        $arr[$i]=$arr[$k];
        $arr[$k]=$temp;
    }
}
return $arr;

}

插入排序

function insertSort($arr) {

$n=count($arr);
for($i=1;$i<$n;$i++) {
    $tmp=$arr[$i];
    $j=$i-1;
    while($arr[$j]>$tmp) {
        $arr[$j+1]=$arr[$j];
        $arr[$j]=$tmp;
        $j--;
        if($j<0)
            break;
    }
}
return $arr;

}

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/22723.html

相關(guān)文章

  • [PHP內(nèi)核探索]PHP中的哈希表

    摘要:的介紹哈希表是實(shí)現(xiàn)字典操作的一種有效數(shù)據(jù)結(jié)構(gòu)。因此,實(shí)現(xiàn)一個(gè)好的哈希表的關(guān)鍵就是一個(gè)好的哈希函數(shù)和處理哈希沖突的方法。取而代之的是通過(guò)應(yīng)用哈希表的,然后只取哈希表的低位。由上面可以看到,的哈希表實(shí)現(xiàn)相當(dāng)復(fù)雜。 在PHP內(nèi)核中,其中一個(gè)很重要的數(shù)據(jù)結(jié)構(gòu)就是HashTable。我們常用的數(shù)組,在內(nèi)核中就是用HashTable來(lái)實(shí)現(xiàn)。那么,PHP的HashTable是怎么實(shí)現(xiàn)的呢?最近在看H...

    Yuanf 評(píng)論0 收藏0
  • PHPer書單

    摘要:想提升自己,還得多看書多看書多看書下面是我收集到的一些程序員應(yīng)該看得書單及在線教程,自己也沒(méi)有全部看完。共勉吧當(dāng)然,如果你有好的書想分享給大家的或者覺(jué)得書單不合理,可以去通過(guò)進(jìn)行提交。講師溫銘,軟件基金會(huì)主席,最佳實(shí)踐作者。 想提升自己,還得多看書!多看書!多看書!下面是我收集到的一些PHP程序員應(yīng)該看得書單及在線教程,自己也沒(méi)有全部看完。共勉吧!當(dāng)然,如果你有好的書想分享給大家的或者...

    jimhs 評(píng)論0 收藏0
  • 初學(xué)者福音!可能是最適合你的Java學(xué)習(xí)路線和方法推薦。

    摘要:學(xué)習(xí)完多線程之后可以通過(guò)下面這些問(wèn)題檢測(cè)自己是否掌握,下面這些問(wèn)題的答案以及常見(jiàn)多線程知識(shí)點(diǎn)的總結(jié)在這里??蛇x數(shù)據(jù)結(jié)構(gòu)與算法如果你想進(jìn)入大廠的話,我推薦你在學(xué)習(xí)完基礎(chǔ)或者多線程之后,就開(kāi)始每天抽出一點(diǎn)時(shí)間來(lái)學(xué)習(xí)算法和數(shù)據(jù)結(jié)構(gòu)。 我自己總結(jié)的Java學(xué)習(xí)的系統(tǒng)知識(shí)點(diǎn)以及面試問(wèn)題,已經(jīng)開(kāi)源,目前已經(jīng) 35k+ Star。會(huì)一直完善下去,歡迎建議和指導(dǎo),同時(shí)也歡迎Star: https://...

    yanest 評(píng)論0 收藏0
  • 小型php框架

    摘要:項(xiàng)目源碼地址鏈接地址簡(jiǎn)單版框架特點(diǎn)單入口采用面向?qū)ο笏枷?,基于設(shè)計(jì)思想,使用觀察者,注冊(cè)器,工廠,代理,特性等模式開(kāi)發(fā)。提供一些常用類圖片分頁(yè)文件上傳驗(yàn)證碼等。提供常用的插件文件壓縮合并觀察等?;谕ㄟ^(guò)數(shù)組下標(biāo)訪問(wèn)配置文件。 項(xiàng)目源碼地址 鏈接地址(https://github.com/cxp1539/mi... Framework 簡(jiǎn)單版php框架 Framework特點(diǎn) 單入口i...

    1treeS 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<