計算機主要用途分為兩大方向,一是數值運算,二是非數值運算。在資料結構與演算法中我們接觸的主要是非數值運算方面的結構與演算法。資料結構主要有線性表、樹、二叉樹、圖、雜湊表;演算法主要涉及排序演算法和查詢演算法。資料結構內容概況如下:
現實中我們會對邏輯上有一定關係的資料進行增刪查改等操作,這些資料必定要儲存到物理介質上,那麼我們如何儲存它們才最有利實現上述操作呢,這就需要我們選擇合適的資料結構和演算法了。
對某一種資料結構,首先了解這種結構的特點和優點!還要能夠將這種結構構造出來,其間有可能會涉及到資料結構的相互轉化。這種構造方法也許不止一種,像我們在構造雜湊表的方法有多種一樣。想讓我們的計算機真實的運用這種結構的好處還得是**(指令)來說話,而它的前提就是演算法。針對這種結構的演算法,往往也不是一種演算法能夠實現我們要的功能。像我們的查詢演算法。這就要考慮演算法時間複雜度和空間複雜度兩個度量指標了。
現實中,我們通過將實際問題轉化為數學模型,數學模型中就體現了我們的資料結構。利用該模型下的演算法(或設計該模型下的演算法)進行編碼,從而使計算機完成我們的任務。如下圖所示:
可以說資料結構是待處理問題的數學模型,演算法則是處理問題的策略。作為軟體工程師除了要對現實問題有很好的理解與把控外,還要深諳資料結構與演算法才能找到合適的數學模型與演算法,從而才能有後續的工作。由此資料結構與演算法的重要性可見一斑。
資料結構的重要性
資料結構的重要性大家都很明白。在大學也是電腦科學與技術的核心課程。但是資料結構地位很高,但是我們很多人都並沒有學好這門課程。在大學的時候,我自己是沒有電腦一族,雖然是由於經濟問題買不起電腦的原因,但還是很羨慕有電腦的同學。總感覺他們動手能力比我強。他們可以去編寫各種各樣程式。其實工作了很多年後回頭一...
資料結構的重要性
用計算機解決實際問題,首先要做的事情就是要把涉及問題的相關資訊儲存到計算機中,也就是需要把問題的資訊表示為計算機可接受的資料形式,然後根據問題處理功能的要求,對儲存到計算機中的資料進行處理。歸結為一句話,用計算機解題首先要用合理的結構表示資料,然後才能根據相應的演算法處理結構,而資料表示和資料處理正...
資料結構和演算法的重要性
我們現在討論字串匹配問題,我相信沒學過演算法的同學,就直接使用暴力匹配法。這個方法很容易想到,但是效率特別的低。如果學過演算法的同學,就知道如何用最佳的方案解決此問題。那就是kmp演算法,可以用最快的速度解決。kmp演算法這裡就不討論了,如果想學的同學可以檢視詳解kmp演算法 演算法是程式的靈魂,乙...