目錄
- 1.什么是演算法
- 2.演算法設計的要求
- 3.演算法效率的度量
- 什么是時間復雜度
- 4.演算法的存盤空間需求
1.什么是演算法
??演算法是對特定問題求解步驟的一種描述,是指令的有限序列, 是由控制結構(順序,分支和回圈)和原操作(固有資料型別的操作)構成的 ,
??演算法有5個特性:有窮性,確定性,可行性,輸入和輸出,
2.演算法設計的要求
??一個不錯的演算法要有一些要求,如下:
(1)正確性:無語法錯誤,對一些合法輸入值要獲得滿足要求的結果,對一些典型,苛刻而帶有刁難性的資料能得到滿足要求的結果,
(2)可讀性:有便于人閱讀和交流的風格,
(3)健壯性:輸入非法資料時,能適當地做出反應處理,并回傳一個表示錯誤或者錯誤性質的值,并中止程式,而不是回傳例外,
(4)效率和低存盤量:要執行時間短,代碼所占記憶體存盤量低,
3.演算法效率的度量
??度量演算法的效率有兩種方法,一種是用指定量的資料運行程式,但這樣結果會受到硬體,軟體與編譯器,編輯器的影響,所以現在大多數時間度量演算法的效率用的是事前分析估算的方法,下面來介紹這種方法,
??由于一個程式設計語言的程式在計算機上的運行耗時取決于:選用的策略,問題的規模,書寫語言的程式,編譯出的機器代碼的質量以及機器執行指令的速度,而這些會受到好多因素的影響,因此再用時間衡量演算法的效率就不合適了,需要其他方面來衡量,這里用時間復雜度來衡量一個演算法,
什么是時間復雜度
??這里認為演算法運行量的大小,也就是運行多少代碼,只依賴于問題的規模,記為n,
??在一個問題中,在演算法中選取一個對研究問題是基本操作的原操作,然后它的重復次數是問題規模n的某個函式f(n),則這個時候的時間度量
??O[f(n)]稱作是 演算法的時間復雜度 ,
??這個時候就會得到結論:問題規模n的頻度越多,重復次數越多,執行時間越多,時間復雜度越復雜,
4.演算法的存盤空間需求
??記存盤空間的量度S(n) = O(f(n))為空間復雜度,是用來衡量演算法占用記憶體的復雜程度,
??一個演算法應追求低時間復雜度,低空間復雜度為標準,按照最快情況考慮,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/170798.html
標籤:Python
上一篇:Python集合:set
