国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

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

PHP實現幾個排序和查找算法

2020-03-22 18:04:01
字體:
來源:轉載
供稿:網友
冒泡排序,快速排序,二分查找,雖然簡單,但是一段時間不用的話就很容易忘記,這里是小編找來的用PHP實現代碼,分享給大家一起來學習一下。

排序冒泡排序

每一次冒出一個最大的值

function bubbleSort($arr) $count = count($arr); if ($count == 0) return false; for ($i = 0; $i $count - 1; $i++) { for ($k = 0; $k $count - 1 - $i; $k++) { if ($arr[$k] $arr[$k + 1]) { $tmp = $arr[$k]; $arr[$k] = $arr[$k + 1]; $arr[$k + 1] = $tmp; return $arr;}
快速排序

選擇一個值作為基準,比他小的放在左邊,比他大的放在右邊,然后對左右遞歸,最后合并

function quickSort($arr) $count = count($arr); if ($count = 1) return $arr; $base = $arr[0]; $left = $right = []; for ($i = 1; $i $count; $i++) { if ($arr[$i] $base) { $left[] = $arr[$i]; } else { $right[] = $arr[$i]; $left = quickSort($left); $right = quickSort($right); return array_merge($left, [$base], $right);}
選擇排序

選擇一個值假設為最小,然后依次比較,發現比他小的就互換位置

function selectSort($arr) $count = count($arr); if ($count = 1) return $arr; for ($i = 0; $i $count; $i++) { //假設最小值位置 $p = $i; //用假設的最小值$arr[$p]輪流比較,發現比他小的就互換 for ($j = $i + 1; $j $count; $j++) { if ($arr[$p] $arr[$j]) { $p = $j; if ($p != $i) { $tmp = $arr[$p]; $arr[$p] = $arr[$i]; $arr[$i] = $tmp; return $arr;}
查找二分查找

二分查找必須是一個排序好的數組,每次拿數組中間位置的值與目標進行比較

function binarySearch(array $arr, $target) $low = 0; $high = count($arr) - 1; while ($low = $high) { $middle = floor(($high + $low) / 2); if ( $arr[$middle] == $target ) { return $middle; } elseif ( $arr[$middle] $target ) { $low = $middle + 1; } else { $high = $middle - 1; return false;}

推薦教程:PHP視頻教程

以上就是PHP實現幾個排序和查找算法的詳細內容,PHP教程

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 留坝县| 德令哈市| 永新县| 玉屏| 雷州市| 玉林市| 泗阳县| 古蔺县| 公主岭市| 裕民县| 泉州市| 汉源县| 托里县| 平利县| 中超| 南皮县| 静乐县| 阜新市| 普陀区| 澳门| 灵山县| 宁安市| 铜陵市| 曲阳县| 永德县| 合水县| 田阳县| 高碑店市| 峨眉山市| 绥化市| 右玉县| 通许县| 昭平县| 南平市| 辉南县| 双辽市| 潜江市| 东城区| 北海市| 景谷| 成武县|