資料結構複習之【資料結構和演算法概念】

來源:互聯網
上載者:User
一、概念 


資料結構就像是一個催化劑,如果沒有原料是無用的,單是有了演算法就能幫演算法更快的實現任務;

資料結構:是指相互之間存在一種或多種特定關係的資料元素的集合,簡單地說是資料之間的各種關係的集合。

程式設計=資料結構+演算法;

解釋:如果要寫一個程式,需要選擇一個良好的資料結構,加上良好的解決問題的演算法;

 

二、名詞解釋 

 

資料是一個最廣泛的概念,資料中可以有多個資料對象,資料對象中可以有多個資料元素,資料元素中可以有多個資料項目;

資料:能夠輸入到電腦並且能夠被電腦處理的符號;

資料對象:一個類的事物;

資料元素:一個記錄;

資料項目:一個記錄的屬性;

比如:

class Person{

    String name;

    int age;

}

則資料對象為Person,資料元素為Person的執行個體,比如Person a,Person b,資料項目為name、age屬性;

抽象資料類型(ADT):類比於類,自訂類型;

 

三、資料結構介紹

 

資料結構:資料元素之間的相互關係,那上面的例子來說,就是a和b的關係;

資料結構分為:

(1)邏輯結構:資料元素之間的相互關係,比如a和b的關係;

    -集合結構:資料元素之間沒有關係;

    -線性結構:資料元素之間一對一關聯性,例如鏈表;

    -樹結構:資料元素之間一對多關聯性,比如二叉樹;

    -圖解構:資料元素之間多對多關係,比如無向圖、有向圖;

(2)物理結構:資料元素在電腦中的儲存關係;

    -順序儲存:資料元素連續儲存,資料存放區在連續的記憶體中;

    -鏈表格儲存體:資料元素用鏈表串連,儲存不連續;

 

一、演算法和資料結構的關係

 

演算法和資料結構是密不可分的,因為如果資料結構是一個靜態東西,如果不去應用它,則只是一個很死的東西,因此我們需要演算法;

比如 鄰接表,只介紹他可能只是瞭解他的概念,但是如果我們學了DFS、BFS就知道他的用途;

 

二、演算法概念

 

演算法:演算法是解決特定問題求解步驟的描述,指令的有限序列;

解決一個問題可能有多種演算法,但是好的演算法是唯一的;

空間複雜度和時間複雜度需要權衡;

 

 

 演算法的特性(演算法的基本要求)

 

(1)輸入輸出:演算法需要有輸入和輸出;

(2)有窮性:執行有限時間後完畢,此處的有限時間指的是你期望的時間;

(3)確定性:在輸入相同的前提下,輸出要唯一;

(4)可行性:能夠運行出結果;

 

演算法的設計要求(演算法的理想要求)

 

(1)正確性:對於合法輸入能夠得到正確答案,對於非法輸入能夠得到非法提示;

(2)可讀性:便於閱讀,別人拿到也能夠很容易的看懂;

(3)健壯性:對於非法輸入,需要得到足夠的提示,而不是異常;

(4)執行速度快、佔用儲存空間少;

 

度量演算法效率的方法

 

(1)事後統計法:編寫好演算法後測試,一般不用,因為外部的環境會極大的影響演算法的速度,比如機器的好壞、輸入的規模;

(2)事先統計法:編寫好演算法前先估計;

 

 

 

判斷f(n)和g(n)哪個效率高的方法:如果存在N,使得n>N時,f(n)>g(n),則f(n)劣於g(n);

 

演算法中最壞情況是一種底線,一般我們都需要保證最壞情況小於某個時間;

 大O標記法

 

給定已耗用時間,去除加法常數、只保留最高階項、去掉最高階項的常數,就得到大O標記法;

比如4n^2+3n+2 = O(n^2)

 

 

高斯求和演算法

 

1+2+3+.....+99+100通過:

sum =   1  + 2 + 3  +.....+99+100

sum = 100+99+98 +.......+2  +  1

2*sum = 101*100

sum = 5050

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.