php 二叉樹演算法小解

2021-08-03 10:16:24 字數 632 閱讀 9212

前段時間出去面試,被問到如果從乙個陣列中快速找到某乙個元素在該陣列的位置。我當時大概想到他是想問我演算法,當時不是很清楚怎麼寫,就用說切割字串,用字串函式去找,當時想的是字串函式查詢起來挺方便的。面試官直接說。我給的陣列很小,如果很大怎麼辦。肯定不能用你這種方法,他說用二叉樹,面試完之後自己回去查了所謂的二叉樹,自己寫了小demo試了一下,確實不錯。不多說了,慚愧,寫php的竟然一點演算法都不懂。。上**

$a = [2,55,6,789,33,87,555,743];

sort($a);

function

halfsearch

($array, $find, $start, $end)

$mid = floor(($end + $start)/2);

if($array[$mid] == $find)elseif($array[$mid] > $find)elseif($array[$mid] < $find)

}$b = halfsearch($a, 33, 0, count($a)-1);

echo

$b;

我大概講解下思路,其實主要是分割陣列中元素,獲取中間的元素值與被查詢的值做比較,從而減小查詢範圍,跟我們平常的快速排序有異曲同工之妙。

二叉樹演算法

include include include define elementtype int node structure constructor typedef struct bt binarytreenode,btroot function declear inorder btroot root...

二叉樹演算法

二叉樹的遍歷演算法 1.先序遍歷 對每乙個節點將其看作根節點按照根左右的順序進行遍歷。示例 void preordertree node root 先序遍歷二叉樹 return 2.中序遍歷 對每乙個節點將其看作根節點按照左根右的順序進行便利。示例 void inordertree node roo...

二叉樹演算法

include include define maxsize 20 define max 20 int count 0 int count1 0 int depth int du1 0 int du2 0 樹的儲存結構 typedef struct nodebinode,bitree 棧的儲存結構 ...