走進數據結構

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

開發工具與關鍵技術:  

作者:吳業華

撰寫時間:2020年5月7號

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

如何開發高效率的軟件,針對實際問題,編寫出一個高效率的處理程序,就需要解決如何合理地

組織數據,建立合適的數據結構,設計較好的算法,來提高程序執行效率這樣的問題。數據結構

和算法就是在此背景下形成和發展起來的。

    簡而言之,軟件開發要多動腦筋,想到好的解決方法才能更快更好地編寫出效率更高的程序。

數據結構和算法這門課程的目的正是使學生更快地編寫出更高效的程序。

即使是在廣泛採用可視性程序設計的今天,藉助於集成開發環境可以很快地生成程序,但要想成

爲一個專業的程序開發人員,至少需要以下三個條件:

  1. 能夠熟練地選擇和設計各種業務邏輯的數據結構和算法。
  2. 至少能夠熟練地掌握一門程序設計語言。
  3. 熟知所涉及的相關應用領域知識。

後兩個條件比較容易實現,而第一個條件則需要花很多時間和精力才能夠達到,而它恰恰是區分

程序設計人員水平高低的一個重要標誌。數據結構貫穿程序設計的始終,缺乏數據結構和算法的

功底,很難設計出高水平的具有專業水準的應用程序。瑞士著名的計算機科學家尼古拉斯沃思提

出了“算法+數據結構=程序”的觀點,這正說明了數據結構的重要性。

  1. 邏輯結構
  1. 線性結構。結構中的數據元素之間存在着一對一的線性關係。
  2. 樹結構。結構中的數據元素之間存在着一對多的層次關係。
  3. 圖結構。結構中的數據元素之間存在着多對多的任意關係。
  1. 邏輯結構的延伸及基本算法
  2. 物理結構
  3. 運算集合(基本操作)
  4. 最重要的成員-----算法
  5. 算法是解決問題的方法,是程序設計的精髓,程序設計的實質就是構造解決問題的算法。算法

的設計取決於數據的邏輯結構,算法的實現取決於數據物理存儲結構。

1.3.1算法的概念和特性

算法是對特定問題求解步驟的一種描述,它是指令的有限序列。做任何事情都必須事先想好進行的步驟,然後按部就班地進行,纔不會發生錯誤,計算機解決問題也是如此。對於一些常用的算法應該熟記,比如求階乘、求素數、求是否閏年等算法,在解決實際問題時,可參考已有的類似算法,按照業務邏輯設計出符合自己的算法。

一個算法應該具有以下五個重要特性。

    有窮性

一個算法應包含有限個操作步驟。即一個算法在執行若干個步驟之後應該能夠結束,而且每一步都在有限時間內完成。

 確定性

算法中的每一步都必須有確切的含義,不能產生二義性。

 可行性

算法中的每一個步驟都應該是能有效地執行,並得到確定的結果。

 輸入

所謂輸入,是指在算法執行時,從外界取得必要的數據。計算機運行程序的目的是爲了進行數據處理,在大多數情況下,這些數據需要通過輸入得到。有些情況下,數據已經包含在算法中,算法執行時不需要任何數據,所以一個算法可以有零個或多個輸入。

 輸出

一個算法有一個或多個輸出,這是算法進行數據處理後的結果。沒有輸出的算法是毫無意義的。

算法的這些特性可以約束程序設計人員正確地書寫算法,並使之能夠正確無誤地執行,達到求解問題的預期效果。

本書所討論的算法,可用不同的方式進行描述,常用的有類Pascal、類C、類C++、類Java程序設計語言,本教材同時以類C、類C#、類Java三種程序設計語言爲描述工具,方便廣大學生學習。

1.3.2算法設計的要求

算法設計的好壞關乎程序的執行效率,算法的設計必須滿足下列四個要求。

 正確性

正確性的含義是算法對於一切合法的輸入數據都能夠得出滿足要求的結果,事實上要驗證算法的正確性是極爲困難的,因爲通常情況下合法的輸入數據量太大,用窮舉法逐一驗證是不現實的。所謂的算法正確性是指算法達到了測試要求。

 可讀性

算法的可讀性是指人對算法閱讀理解的難易程度,可讀性高的算法便於交流,有利於算法的調試和修改。通常增加算法的可讀性是在書寫算法時採用按縮進格式書寫、分模塊書寫等方法可增加算法的可讀性。

 健壯性

對於非法的輸入數據,算法能給出相應的響應,而不是產生不可預料的後果。

 效率與低存儲量需求

效率指的是算法的執行時間。對於解決同一問題的多個算法,執行時間短的算法效率高。存儲量需求指算法執行過程中所需要的最大存儲空間。存儲量需求越小的算法效率越高。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章