日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【数据结构】之算法和算法评价

發布時間:2024/7/23 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【数据结构】之算法和算法评价 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.2算法和算法評價

1.2.1 算法的基本概念

算法(Algorithm〉是對特定問題求解步驟的一種描述,它是指令的有限序列,其中的每條指令表示一個或多個操作。此外,一個算法還具有下列5個重要特性:
1)有窮性。一個算法必須總在執行有窮步之后結束,且每一步都可在有窮時間內完成。
2)確定性。算法中每條指令必須有確切的含義,對于相同的輸入只能得出相同的輸出。
3)可行性。算法中描述的操作都可以通過已經實現的基本運算執行有限次來實現。
4)輸入。一個算法有零個或多個輸入,這些輸入取自于某個特定的對象的集合。
5)輸出。一個算法有一個或多個輸出,這些輸出是與輸入有著某種特定關系的量。

注:算法必須是有窮的,而程序可以是無窮的。

通常,設計一個“好”的算法應考慮達到以下目標:
1)正確性。算法應能夠正確地解決求解問題。
2)可讀性。算法應具有良好的可讀性,以幫助人們理解。
3)健壯性。輸入非法數據時,算法能適當地做出反應或進行處理,而不會產生莫名其妙的輸出結果。
4)效率與低存儲量需求。效率是指算法執行的時間,存儲量需求是指算法執行過程中所需要的最大存儲空間,這兩者都與問題的規模有關。
高效率:執行速度快,時間復雜度低。
低存儲量:不費內存,空間復雜度低。

1.2.2算法效率的度量

算法效率的度量是通過時間復雜度和空間復雜度來描述的。
1.時間復雜度
一個語句的頻度是指該語句在算法中被重復執行的次數。算法中所有語句的頻度之和記為T(n),它是該算法問題規模n的函數,時間復雜度主要分析T(n)的數量級。算法中基本運算(最深層循環內的語句)的頻度與Tn)同數量級,因此通常采用算法中基本運算的頻度fn)來分析算法的時間復雜度R。因此,算法的時間復雜度記為 T(n)= O(fn))
O的含義是T(n)的數量級,其嚴格的數學定義是:若T(n)和f八n)是定義在正整數集合上的兩個函數,則存在正常數C和no,使得當n≥no時,都滿足0≤T(n)≤Cf(n)。
算法的時間復雜度不僅依賴于問題的規模n,也取決于待輸入數據的性質(如輸入數據元素的初始狀態)。例如,在數組A [ 0····n-1]中,查找給定值k的算法大致如下:

(1)i=n-1; (2)while(i>=0& & (A[i] !=k)) (3)i--; (4)return i;

該算法中語句3(基本運算)的頻度不僅與問題規模n有關,而且與輸入實例中A的各元素的取值及k的取值有關:
①若A中沒有與k相等的元素,則語句3的頻度f(n)=n。
②若A的最后一個元素等于k,則語句3的頻度f(n)是常數0。
最壞時間復雜度 是指在最壞情況下,算法的時間復雜度。
平均時間復雜度 是指所有可能輸入實例在等概率出現的情況下,算法的期望運行時間。
最好時間復雜度 是指在最好情況下,算法的時間復雜度。
一般總是考慮在最壞情況下的時間復雜度,以保證算法的運行時間不會比它更長。在分析一個程序的時間復雜性時,有以下兩條規則:
a)加法規則
多項相加,只保留最高階的項,且系數變為1.
b)乘法規則
多項相乘,都保留。

常見的漸近時間復雜度為

記憶口訣:常對冪指階。
注:①順序執行的代碼只會影響常數項可以忽略。
②只需要挑循環中的一個基本操作分析它的執行次數與n的關系即可。
③如果有多層嵌套循環只需要關注最深層循環循環了幾次。
2.空間復雜度
算法的空間復雜度S(n)定義為該算法所耗費的存儲空間,它是問題規模n的函數。記為S(n)= O(g(n)) 一個程序在執行時除需要存儲空間來存放本身所用的指令、常數、變量和輸入數據外,還需要一些對數據進行操作的工作單元和存儲一些為實現計算所需信息的輔助空間。若輸入數據所占空間只取決于問題本身,和算法無關,則只需分析除輸入和程序之外的額外空間。
算法原地工作是指算法所需的輔助空間為常量,即O(1)。

常見的漸近空間復雜度為

記憶口訣:常對冪指階。

總結

以上是生活随笔為你收集整理的【数据结构】之算法和算法评价的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。