目錄4.演算法的儲存空間需求
演算法是對特定問題求解步驟的一種描述,是指令的有限序列。是由控制結構(順序,分支和迴圈)和原操作(固有資料型別的操作)構成的 。
演算法有5個特性:有窮性,確定性,可行性,輸入和輸出。
乙個不錯的演算法要有一些要求,如下:
(1)正確性:無語法錯誤,對一些合法輸入值要獲得滿足要求的結果,對一些典型,苛刻而帶有刁難性的資料能得到滿足要求的結果。
(2)可讀性:有便於人閱讀和交流的風格。
(3)健壯性:輸入非法資料時,能適當地做出反應處理,並返回乙個表示錯誤或者錯誤性質的值,並中止程式,而不是返回異常。
(4)效率和低儲存量:要執行時間短,**所佔記憶體儲存量低。
度量演算法的效率有兩種方法,一種是用指定量的資料執行程式,但這樣結果會受到硬體,軟體與編譯器,編輯器的影響。所以現在大多數時間度量演算法的效率用的是事前分析估算的方法。下面來介紹這種方法。
由於乙個程式語言的程式在計算機上的執行耗時取決於:選用的策略,問題的規模,書寫語言的程式,編譯出的機器**的質量以及機器執行指令的速度,而這些會受到好多因素的影響。因此再用時間衡量演算法的效率就不合適了。需要其他方面來衡量。這裡用時間複雜度來衡量乙個演算法。
什麼是時間複雜度
這裡認為演算法執行量的大小,也就是執行多少**,只依賴於問題的規模,記為n。
在乙個問題中,在演算法中選取乙個對研究問題是基本操作的原操作,然後它的重複次數是問題規模n的某個函式f(n),則這個時候的時間度量
o[f(n)]稱作是演算法的時間複雜度 。
這個時候就會得到結論:問題規模n的頻度越多,重複次數越多,執行時間越多,時間複雜度越複雜。
記儲存空間的量度s(n) = o(f(n))為空間複雜度,是用來衡量演算法占用記憶體的複雜程度。
乙個演算法應追求低時間複雜度,低空間複雜度為標準。按照最快情況考慮。
資料結構系統學習 1 資料型別和資料結構的概念
目錄2.資料結構 在現代計算機系統中,計算機更多地用於控制,管理及資料處理等非數值計算的處理工作,而不像之前只需要處理數值型資料。這個時候,資料的型別變為了由字元,和影象格式等組合而成的具有一定結構的資料。而用程式處理如何處理這些資料已經變得越來越重要了,由此產生了乙個叫做資料結構的學科。下面就一起...
演算法學習 資料結構2
1 資料結構概述 數結構是計算機中對資料的一種儲存和組織方式,同是也泛指相互之間存在一種或多種特定關係的資料的集合。2 資料結構中的基本概念 資料 data 資料是資訊的載體,其能夠被計算機識別 儲存和加工處理,是電腦程式加強的 原材料 資料元素 data element 資料元素是資料的基本單位,...
演算法(2) 資料結構
資料結構是指相互之間存在著一種或多種關係的資料元素的集合和該集合中資料元素之間的關係組成 簡單來說,資料結構就是設計資料以何種方式組織度儲存在計算機中 比如 列表 集合和字典等都是一種資料結構 程式 資料結構 演算法 資料結構的分類 資料結構按照邏輯結構可分為線性結構 樹結構和圖結構 線性結構 資料...