亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 邏輯算法 > 正文

算法 PHP實現經典算法(上)

2020-03-22 17:38:59
字體:
來源:轉載
供稿:網友
  • 前言

    下面的是通過PHP實現經典算法,并計算了耗時,可以通過耗時對比這幾種算法的復雜度。

    插入排序 冒泡排序 選擇排序 并歸排序 快速排序

    CODE
    $arr = [];for ($i = 0; $i < 5000; $i++) {    $arr[] = rand(1, 10000);}//1 插入排序function insertionSort($arr){    for ($i = 1; $i < count($arr); $i++) {        $tmp = $arr[$i]; //設置監視哨        $key = $i - 1; //設置開始查找的位置        while ($key >= 0 && $tmp < $arr[$key]) { // 監視哨的值比查找的值小 并且 沒有到此次查詢的第一個            $arr[$key + 1] = $arr[$key];  //數組的值進行后移            $key--;  //要查找的位置后移        }        if (($key + 1) != $i) //放置監視哨            $arr[$key + 1] = $tmp;    }    return $arr;}$insertion_start_time = microtime(true);$insertion_sort = insertionSort($arr);$insertion_end_time = microtime(true);$insertion_need_time = $insertion_end_time - $insertion_start_time;print_r('插入排序耗時:' . $insertion_need_time . '<br />');//2 冒泡排序function bubbleSort($arr){    for ($i = 0; $i < count($arr); $i++) {        for ($j = 0; $j < $i + 1; $j++) {            if ($arr[$j] < $arr[$j - 1]) {                $temp = $arr[$j - 1];                $arr[$j - 1] = $arr[$j];                $arr[$j] = $temp;            }        }    }    return $arr;}$bubble_start_time = microtime(true);$bubble_sort = bubbleSort($arr);$bubble_end_time = microtime(true);$bubble_need_time = $bubble_end_time - $bubble_start_time;print_r('冒泡排序耗時:' . $bubble_need_time . '<br />');//3 選擇排序function selectionSort($arr){    $count = count($arr);    for ($i = 0; $i < $count - 1; $i++) {        //找到最小的值        $min = $i;        for ($j = $i + 1; $j < $count; $j++) {            //由小到大排列            if ($arr[$min] > $arr[$j]) {                //表明當前最小的還比當前的元素大                $min = $j;                //賦值新的最小的            }        }        /*swap$array[$i]and$array[$min]即將當前內循環的最小元素放在$i位置上*/        if ($min != $i) {            $temp = $arr[$min];            $arr[$min] = $arr[$i];            $arr[$i] = $temp;        }    }    return $arr;}$selection_start_time = microtime(true);$selection_sort = selectionSort($arr);$selection_end_time = microtime(true);$selection_need_time = $selection_end_time - $selection_start_time;print_r('選擇排序耗時:' . $selection_need_time . '<br />');//4 并歸排序//merge函數將指定的兩個有序數組(arr1arr2,)合并并且排序//我們可以找到第三個數組,然后依次從兩個數組的開始取數據哪個數據小就先取哪個的,然后刪除掉剛剛取過///的數據function al_merge($arrA, $arrB){    $arrC = array();    while (count($arrA) && count($arrB)) {        //這里不斷的判斷哪個值小,就將小的值給到arrC,但是到最后肯定要剩下幾個值,        //不是剩下arrA里面的就是剩下arrB里面的而且這幾個有序的值,肯定比arrC里面所有的值都大所以使用        $arrC[] = $arrA['0'] < $arrB['0'] ? array_shift($arrA) : array_shift($arrB);    }    return array_merge($arrC, $arrA, $arrB);}//歸并排序主程序function al_merge_sort($arr){    $len = count($arr);    if ($len <= 1)        return $arr;//遞歸結束條件,到達這步的時候,數組就只剩下一個元素了,也就是分離了數組    $mid = intval($len / 2);//取數組中間    $left_arr = array_slice($arr, 0, $mid);//拆分數組0-mid這部分給左邊left_arr    $right_arr = array_slice($arr, $mid);//拆分數組mid-末尾這部分給右邊right_arr    $left_arr = al_merge_sort($left_arr);//左邊拆分完后開始遞歸合并往上走    $right_arr = al_merge_sort($right_arr);//右邊拆分完畢開始遞歸往上走    $arr = al_merge($left_arr, $right_arr);//合并兩個數組,繼續遞歸    return $arr;}$merge_start_time = microtime(true);$merge_sort = al_merge_sort($arr);$merge_end_time = microtime(true);$merge_need_time = $merge_end_time - $merge_start_time;print_r('并歸排序耗時:' . $merge_need_time . '<br />');//5 快速排序function quickSort(&$arr){    if(count($arr)>1){        $k=$arr[0];        $x=array();        $y=array();        $_size=count($arr);        for($i=1;$i<$_size;$i++){            if($arr[$i]<=$k){                $x[]=$arr[$i];            }elseif($arr[$i]>$k){                $y[]=$arr[$i];            }        }        $x=quickSort($x);        $y=quickSort($y);        return array_merge($x,array($k),$y);    }else{        return$arr;    }}$quick_start_time = microtime(true);$quick_sort = al_merge_sort($arr);$quick_end_time = microtime(true);$quick_need_time = $quick_end_time - $quick_start_time;print_r('快速排序耗時:' . $quick_need_time . '<br />');

    耗時對比

    插入排序耗時:1.2335460186005
    冒泡排序耗時:2.6180219650269
    選擇排序耗時:1.4159741401672
    并歸排序耗時:0.17212891578674
    快速排序耗時:0.16736888885498

    PHP編程

    鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

  • 發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
    国产精品久久久久久久av大片| 久久久久久久久久久亚洲| 高清日韩电视剧大全免费播放在线观看| 国产热re99久久6国产精品| 国产乱人伦真实精品视频| 一区二区三区精品99久久| 中文字幕在线日韩| 亚洲电影免费观看高清完整版在线观看| 国产精品午夜一区二区欲梦| 亚洲欧美中文字幕| 欧美日韩国产综合新一区| 欧美一级淫片aaaaaaa视频| 久久精品电影网| 亚洲欧美色图片| 国产99在线|中文| 成人写真视频福利网| 成人黄色在线播放| 97人洗澡人人免费公开视频碰碰碰| 国产美女久久精品香蕉69| 亚洲丁香婷深爱综合| 精品成人乱色一区二区| 亚洲a在线观看| 亚洲成色999久久网站| 国产精品99久久久久久www| 美女999久久久精品视频| 亚洲精品美女在线观看播放| 日韩高清电影免费观看完整版| 日韩免费观看在线观看| 日本免费在线精品| www国产亚洲精品久久网站| 欧美日韩中文在线观看| 91香蕉嫩草神马影院在线观看| 91在线观看免费高清完整版在线观看| 亚洲欧美日韩精品| 国产又爽又黄的激情精品视频| 亚洲国产成人久久综合一区| 国产精品久久91| 成人亚洲激情网| 69视频在线播放| 91美女高潮出水| 国产精品久久精品| 最好看的2019年中文视频| 久久久精品视频成人| 亚洲春色另类小说| 91久久精品日日躁夜夜躁国产| 最近中文字幕mv在线一区二区三区四区| 国产一区二区动漫| 蜜臀久久99精品久久久久久宅男| 欧美精品久久久久久久久久| 国产成人鲁鲁免费视频a| 91免费看片在线| 91视频国产一区| 97色在线观看免费视频| 九九九久久国产免费| 国产va免费精品高清在线观看| 久久久91精品国产一区不卡| 日本国产欧美一区二区三区| 国产69精品久久久| 日本人成精品视频在线| 91极品女神在线| 久久久久久国产精品美女| 国产成人亚洲精品| 98视频在线噜噜噜国产| 国产99久久精品一区二区| 日本成人黄色片| 97色在线视频观看| 欧美性高潮在线| 亚洲97在线观看| 欧美激情亚洲激情| 中文字幕av一区二区| 欧美放荡办公室videos4k| 欧美亚洲一区在线| 成人激情综合网| 欧美日韩中国免费专区在线看| 一区二区欧美久久| 日本一区二区在线播放| 国产亚洲欧美日韩美女| 精品国产乱码久久久久久婷婷| 久久成人这里只有精品| 亚洲四色影视在线观看| www国产亚洲精品久久网站| 久久精品99无色码中文字幕| 国产精品视频永久免费播放| 久久精品中文字幕免费mv| 欧美激情视频播放| 色悠悠久久久久| 最好看的2019年中文视频| 国产午夜精品一区二区三区| 日韩精品免费电影| 午夜精品一区二区三区在线视频| 91黑丝在线观看| 91中文字幕在线| 国产精品高潮在线| 成人激情在线播放| 日韩中文在线观看| 精品国产一区二区三区久久狼5月| 中文字幕亚洲欧美一区二区三区| 亚洲精品电影在线| 久久久久久久久久久亚洲| 亚洲成人三级在线| 欧美日韩中文在线| 精品国偷自产在线视频99| 乱亲女秽乱长久久久| 在线播放亚洲激情| 136fldh精品导航福利| 亚洲精品网站在线播放gif| 成人黄色大片在线免费观看| 欧美体内谢she精2性欧美| 久久乐国产精品| 国产在线拍偷自揄拍精品| 亚洲国产精品久久久久| 97在线视频精品| 国产视频精品一区二区三区| 日韩在线一区二区三区免费视频| 91久久中文字幕| 夜夜狂射影院欧美极品| 亚洲男女自偷自拍图片另类| 在线看福利67194| 亚洲激情视频在线| 国产精品男人爽免费视频1| 日本a级片电影一区二区| 最新中文字幕亚洲| 午夜精品久久久久久久99热浪潮| 国产91精品青草社区| 久久久久久久影院| 在线日韩欧美视频| 国产精品高清免费在线观看| 中文字幕精品网| 欧美日韩精品在线播放| 国产综合在线视频| 热门国产精品亚洲第一区在线| 777午夜精品福利在线观看| 日韩在线视频线视频免费网站| 亚洲成人av资源网| 日本精品一区二区三区在线| 欧美性受xxxx白人性爽| 91精品久久久久久久久青青| 中文字幕亚洲色图| 青草青草久热精品视频在线网站| 欧美日韩视频免费播放| 亚洲白拍色综合图区| 福利一区福利二区微拍刺激| 国模精品系列视频| 清纯唯美亚洲综合| 国产欧美日韩免费看aⅴ视频| 日韩精品久久久久久久玫瑰园| 国内精品中文字幕| 国产中文欧美精品| 久久久爽爽爽美女图片| 538国产精品一区二区免费视频| 在线电影中文日韩| 538国产精品一区二区在线| 国内精品久久久久久久| 亚洲精品有码在线| 欧美精品免费在线| 久久久久久国产三级电影| 91精品啪在线观看麻豆免费| 日韩大陆毛片av| 欧美日韩在线免费观看| 91久久夜色精品国产网站| 国产精品麻豆va在线播放| 欧美裸体视频网站| 欧美成人免费全部观看天天性色| 亚洲欧洲国产一区|