演算法:演算法是為了解決某類問題而規定的乙個有限長的操作序列。
有窮性。乙個演算法必須總是在執行有窮步後結束,且每一步都必須在有窮時間內完成。
確定性。對千每種情況下所應執行的操作,在演算法中都有確切的規定,不會產生二義性,使演算法的執行者或閱讀者都能明確其含義及如何執行。
可行性。演算法中的所有操作都可以通過已經實現的基本操作運算執行有限次來實現。
輸入。乙個演算法有零個或多個輸入。當用函式描述演算法時,輸入往往是通過形參表示的,在它們被呼叫時,從主調函式獲得輸入值。
輸出。乙個演算法有乙個或多個輸出,它們是演算法進行資訊加工後得到的結果,無輸出的演算法沒有任何意義。當用函式描述演算法時,輸出多用返回值或引用型別的形參表示。
正確性。在合理的資料輸入下,能夠在有限的執行時間內得到正確的結果。
可讀性。乙個好的演算法,首先應便於人們理解和相互交流, 其次才是機器可執行性。可讀性強的演算法有助於人們對演算法的理解,而難懂的演算法易千隱藏錯誤,且難千除錯和修改。
健壯性。當輸入的資料非法時,好的演算法能適當地做出正確反應或進行相應處理,而不會產生一些莫名其妙的輸出結果。
高效性。高效性包括時間和空間兩個方面。時間高效是指演算法設計合理,執行效率高,可以用時間複雜度來度量;空間高效是指演算法占用儲存容量合理,可以用空間複雜度來度量。時間複雜度和空間複雜度是衡量演算法的兩個主要指標。
問題規模:問題規模是演算法求解問題輸入量的多少,是問題大小的本質表示,一般用整數n表示。
語句頻度:一條語句的重複執行次數。
時間複雜度:一般情況下,演算法中基本操作重複執行的次數是問題規模n的某個函式,用t(n)
表示,若有某個輔助函式f(n)
,存在乙個正常數c
使得fn*c>=t(n)
恆成立。記作t(n)=o(f(n))
,稱o(f(n))
為演算法的漸進時間複雜度,簡稱時間複雜度。
時間複雜度比較
o(1) < o(logn) < o(n) < o(nlogn) < o(n^2) < o(n^3) < o(2^n)
常見演算法的時間複雜度
空間複雜度:指演算法在計算機內執行時所需儲存空間的度量。
記作:s(n)=o(f(n))
演算法執行期間所需要的儲存空間包括3個部分:
在許多實際問題中,為了減少演算法所佔的儲存空間,通常採用壓縮儲存技術。
軟體開發工程師知識整理(資料庫)
資料庫 db 長期儲存在計算機的儲存裝置上,按照一定規則組織起來,可以被用於或應用共享的資料集合。資料庫管理系統 dbms 指一種操作和管理資料庫的大型軟體,用於建立 使用和維護資料庫,對資料庫進行統一管理和控制,以保證資料庫的安全性和完整性。使用者通過資料庫管理系統訪問資料庫中的資料。資料庫系統 ...
開發工程師的自我評價 C 軟體開發工程師簡歷范文
工作描述1 主要負責跨域共享效能優化專案的專案管理及開發工作,主導了前期的框架和業務邏輯的設計工作。該專案針對特定業務,新建了分布式交付軟 件,通過重新設計了優化流程,高效的資料結構和演算法,使業務速度優化10倍,業務量擴容5倍。工作描述2 參與基礎平台效能優化專案的開發工作,負責資料庫快取的設計與...
軟體開發工程師證書有用嗎 bim工程師證書有用嗎
首先可以肯定回答的是 有用。如今bim技術的推行恰好彌補了傳統施工流程的許多缺陷,讓施工流程變得更加合理,工法更加快捷實用,施工方案的演示上實現視覺化 甚至借助引數化可以快速生成施工圖。所有的專業在同乙個模型上協同辦公,底層施工員的地位將得到顯著提公升!這些都是傳統基於cad製圖所無法比擬的。自20...