97影院理论在线观看_男人叉女人视频_97精品伊人_污污网站在线播放

將想法與焦點和您一起共享

PHP 中巧用數組降低程序的時間復雜度發布者:本站     時間:2020-05-06 16:05:12

通常開發人員在寫程序的時候,往往是把已經設計好或者構思好的運算邏輯,直接用編程語言翻譯出來。程序能順利編譯通過,那是很令人高興的事情。如果此時程序的運行時間還能接受,就會沉浸在寫代碼的成就感當中,常常在這個過程中忽略代碼的優化。只有當程序運行速度受到影響時,才回過頭去考慮優化的事情。

什么是算法的時間復雜度

時間復雜度是開發人員用來衡量應用程序算法優劣的主要因素。客觀地說,算法的優劣除了和時間復雜度有關,還與空間復雜度密切相關。而隨著設備硬件配置的不斷提升,對中小型應用程序來說,對算法的空間復雜度的要求也寬松了不少。不過,在當今 Web2.0 時代,對應用程序的時間復雜度卻有了更高的要求。

什么是算法的時間復雜度呢?概要來說,是指從算法中選取一個能代表算法的原操作,以原操作重復執行的次數作為算法的時間量度。影響時間復雜度的因素有兩個:一是原操作的執行時間,二是原操作因控制結構引起的執行次數。要把算法的時間復雜度降下來,降低原操作的執行次數是較為容易的方法,也是主要方法。本文所講述的方法,是通過巧用 PHP 的數組,降低原操作的執行次數,從而達到降低算法時間復雜度的需求,和大家分享。

算法的時間量度記作 T(n)=O(f(n)),它表示算法中基本操作重復執行的次數是問題規模 n 的某個函數 f(n),也就是說隨著問題規模 n 的增大,算法執行時間的增長率和 f(n) 的增長率相同。多數情況下,我們把最深層循環內的語句作為原操作來討論算法的時間復雜度,因為它的執行次數和包含它的語句的頻度相同。一般情況下,對一個問題只需選擇一種基本操作來討論算法的時間復雜度即可。有時也需要同時考慮多種基本操作。

在 Web 開發中,通常一個功能的執行時間或響應時間,不僅僅跟服務器的響應能力、處理能力有關,還涉及第三方工具的交互時間,如對數據庫的鏈接時間和對數據進行存取的時間。因而在選定原操作是,需要綜合考慮應用程序各方面的因素,以最大影響程序執行時間的操作為原操作,來衡量算法的時間復雜度。也就是說,需要程序員在編寫代碼的時候,對重要操作的執行時間能有基本的認識。

常見程序中的時間復雜度分析

我們先看一個例子,假設 Web 程序的開發語言是 PHP,后臺采用 DB2 數據庫,PHP 通過 PEAR::DB 數據抽象層來實現對數據庫的訪問。

實例

數據庫中有學生表 Students(見表 1),班級表 Classes(見表 2),學生成績表 Scores(見表 3),需要在 Web 頁面中顯示出本次考試數學成績超過 90 分的同學姓名和所在班級。



選擇我們,優質服務,不容錯過
1. 優秀的網絡資源,強大的網站優化技術,穩定的網站和速度保證
2. 15年上海網站建設經驗,優秀的技術和設計水平,更放心
3. 全程省心服務,不必擔心自己不懂網絡,更省心。
------------------------------------------------------------
24小時聯系電話:021-58370032