資料結構 PHP實現查詢表

2021-04-23 22:37:44 字數 2150 閱讀 1513

【基本演算法】

假設有乙個陣列,需要找出某個值在該陣列中的位置。

<?

//二分查詢

function 

bin_sch

($array

, $low

, $high

, $k

)elseif (

$k < 

$array

[$mid

])else

} return -1;

} //順序查詢

function 

seq_sch

($array

, $n

, $k

) }

if (

$i<

$n)else

} ?>

測試**:

array.txt 檔案裡面包含了一百萬條類似 2,3,4,5 這樣的資料,下面通過順序查詢和二分查詢來確定速度。

//二分查詢

<?php

set_time_limit(0

); $array 

= array();

$file 

= file_get_contents

("./array.txt"

);$array 

= explode

(","

, $file

); sort

($array

); $st 

= time

();

$k = 

43; 

$n = 

count

($array

); $r 

= bin_sch

($array, 0

, $n-1

, $k

); $et 

= time

();

$t = 

$et-

$st;

echo 

"process time: "

. $t 

."/s"

; ?>

以上輸出:

process time: 0/s

//順序查詢

<?php

set_time_limit(0

); $array 

= array();

$file 

= file_get_contents

("./array.txt"

); $array 

= explode

(","

, $file

); $st 

= time

();

$k = 

43; 

$n = 

count

($array

); $r 

= seq_sch

($array

, $n

, $k

); 

$et 

= time

();

$t = 

$et-

$st;

echo 

"process time: "

. $t 

."/s"

; ?>

以上輸出結果:process time: 9/s

上面輕易就能夠看出誰的效率高了。

【演算法改進】

<?

//二分查詢(遞迴消除)

function 

bin_sch

($array

, $n

, $k

)else

} return -1;

} //順序查詢(改進版)

function 

seq_sch

($array

, $n

, $k

) }

if (

$i<

$n)else

} ?>

能看出上面兩個函式做了什麼改變嗎?效率提公升了多少?

php 實現查詢快取

適合讀者 本教程適合於那些對快取sql查詢以減少資料庫連線與執行的負載 提高指令碼效能感興趣的php程式設計師。概述 這樣乙個系統通過把sql查詢的結果快取到系統的乙個檔案中儲存,從而阻止連線資料庫,構造查詢與取得返回結果而提高了響應時間。有些系統資料庫並不是放在web伺服器上的,這樣需要乙個遠端連...

通過表關聯實現查詢

建資料庫students 建立三個 分別儲存學生,教師,課程資訊 mysql create table student key student int 5 not null auto increment,student name varchar 20 not null,primary key key...

PHP 資料結構 反轉鍊錶PHP實現

1.常見方法分為迭代和遞迴,迭代是從頭到尾,遞迴是從尾到頭 2.設定兩個指標,old和new,每一項新增在new的後面,新煉表頭指標指向新的煉表頭 3.old next不能直接指向new,而是應該設定乙個臨時指標tmp,指向old next指向的位址空間,儲存原鍊錶資料,然後old next指向ne...