PHP陣列的查詢演算法

2021-07-26 21:48:29 字數 1237 閱讀 4272

php陣列的查詢演算法 即  找出某個陣列中是否存在某個值

1.順序查詢 -

就是遍歷陣列乙個乙個進行判斷如果相等表示找到 退出即可

/**

* 陣列順序查詢某值

* @param array $arr 要檢索的陣列

* @param integer $need 要查詢的數

* @return integer 找到返回該數下標 失敗返回false

*/function gener_search($arr,$need)

}//沒找到返回false

return false;

}

2.二分查詢 -

二分查詢又稱折半查詢,

優點是比較次數少,查詢速度快,平均效能好;

其缺點是要求待查表為有序表,且插入刪除困難。

因此,折半查詢方法適用於不經常變動而查詢頻繁的有序列表

/**

* 陣列二分查詢

* @param array $arr 需要檢索的資料

* @param integer $need 查詢的數

* @param integer $begin 開始的位置 起始(預設)為0

* @param integer $end 結束位置 預設最後

* @return integer 找到返回該數下標 失敗返回false

*/$arr = array(2,4,6,10,16,26,42,68,110);

function binary_search($arr, $need, $begin=0, $end=null)

//得到陣列中間位置

$mid_index = floor(($begin+$end)/2);

//中間數如果正好相等 返回索引退出

if ($arr[$mid_index] == $need)

//中間數若大於查詢數 標識在其左邊 左邊資料遞迴操作

if ($arr[$mid_index] > $need)

$ret = binary_search($arr, $need, $begin, $mid_index-1);

}else

$ret = binary_search($arr, $need, $mid_index+1, $end);

}return $ret;

}

php陣列排序演算法 查詢演算法

陣列排序演算法氣泡排序 從陣列第乙個元素開始,從左到右,相鄰的2個元素比較大小 如果左邊的比右邊的大,則交換位置。邏輯描述 1.需要進行n 1趟比較過程 2.每一趟的比較都比前一趟少比一次,第一趟需要比較n 1次 3.每趟比較,從陣列的開頭開始,跟緊鄰元素比較,並進行交換 需要的時候 示例 arr2...

php 陣列模糊查詢

乙個陣列中有多個值,現在需要輸入某個字串,要模糊查詢出所有帶有這個字串的陣列中的值,該如何實現呢?看例子 keywords dd arrays array 0 db aabbccddee 1 aabbccdd 2 aaa 3 aabb 4 aabbcc 5 aabbccddeeff arr arra...

php查詢演算法,PHP演算法之二分查詢

二分查詢的定義 二分查詢也稱折半查詢 binary search 它是一種效率較高的查詢方法。但是,折半查詢要求線性表必須採用順序儲存結構,而且表中元素按關鍵字有序排列。演算法的要求 從上面的定義我們可以知道,滿足該演算法的要求必須如下兩點 必須採用順序儲存結構。必須按關鍵字大小有序排列。演算法的步...