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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

算法复杂度简介

發布時間:2025/3/15 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 算法复杂度简介 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

數據結構是問題的數學模型。 程序設計的實質是對實際問題選擇一種好的數據結構,加之設計一個好的算法。 算法(解決問題的方法)處理的對象就是數據。算法與數據的結構密切相關,算法無不依附于具體的數據結構,數據結構直? 接關系到算法的選擇和效率。程序設計的實質是對實際問題選擇一種好的數據結構,加之設計一個好的算法。

一、基本概念

1、數據:是對信息的一種符號表示——人們利用文字符號、數字符號以及其他規定的符號對現實世界的事物及其活動所做的描述。

2、數據元素:是數據(集合)中的一個“個體”,是數據的基本單位,在計算機程序中通常作為一個整體進行考慮和處理。

3、數據項(data item):是數據結構中討論的“最小單位”。

4、數據對象(Data Object):是性質相同的數據元素的集合,是數據的一個子集。

5、數據結構(Data Structure): 是相互之間存在一種或多種特定關系的數據元素的集合。

6、結構:數據元素之間的相互關系。

?? 四種基本結構:集合,線性結構,樹型結構,圖狀結構或網狀結構。

二、好的算法的要求

1、算法的正確性:有窮性,確定性,可行性,輸入,輸出。

2、好的算法的要求目標:正確性,可讀性,健壯性,效率與低存儲要求。

三、好的算法的度量

??? 與算法執行時間相關的因素有: 1)、算法選用的策略2)、問題的規模

3)、編寫程序的語言4)、編譯程序產生的機器代碼的質量5)、計算機執行指令的速度

一般認為算法的效率只依賴于問題的規模。任何一個算法都是由一個控制結構和若干原操作組成的。控制結構:順序、分支和循環 3 種。原操作:指對固有數據類型(高級語言中的數據類型)的操作(如賦值操作、轉向操作、比較操作等等),顯然每個原操作的執行時間和算法無關,相對于問題的規模是常量。

算法的執行時間可看成是所有原操作的執行時間之和。

1、時間復雜度

算法中包含原操作次數的多少叫做算法的時間復雜度,用它來衡量一個算法的運行時間性能。

如果存在兩個正常數cn0,對于所有的 n>=n0,有| f(n) |<=c | T(n)|則稱 f(n) T(n) 的同數量級函數。把 T(n) 表示成數量級的形式為:T(n)=O(f(n))。稱O(f(n)) 為算法的漸近時間復雜度,簡稱時間復雜度。

有時候,算法中基本操作重復執行的次數還隨問題的輸入數據集不同而不同,如在冒泡排序中,輸入數據有序而無序,其結果是不一樣的。此時,我們計算平均值。

常見的算法的時間 復雜度之間的關系為:

O(1)<O(log n)<O(n)<O(nlog n)<O(n2)<O(2n)<O(n!)<O(nn)?

當 n 很大時,指數階算法和多項式階算法在所需時間上非常懸殊。因此,只要有人能將現有指數階算法中的任何一個算法化 簡為多項式階算法,那就取得了一個偉大的成就。

2、空間復雜度

?? 空間復雜度:算法所需存儲空間的度量,記作:?

???????????????????????????????? S(n)=O( f(n) )???????????

其中 n 為問題的規模。

??? 一個算法所需存儲空間:算法本身的存儲空間、輸入數據的存儲空間、算法在運行過程中臨時占用的存儲空間。 如果額外空間相對于輸入數據量來說是個常數,則稱此算法是原地工作

from: http://blog.163.com/zhoumhan_0351/blog/static/39954227201001751922180/ 與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的算法复杂度简介的全部內容,希望文章能夠幫你解決所遇到的問題。

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