㈠ 數據結構和演算法為什麼這么重要
演算法都是從生活里得到的,生活里用的很自如,應用到程序里一樣會很方便。
比如最簡單的,中國有那麼多省,每個省有那麼多市,每個市有那麼多區縣之類的,看到一個小地方,怎麼才能知道它在哪,很明顯,去看它在哪個區,哪個市,哪個省。
這就是樹的作用,從子節點通過父節點去確定它的位置。這個同樣應用在文件管理,還有特殊的比如要求設計個資料庫,能夠體現部門,小組的包含關系,很簡單,在小組裡面加個父節點的欄位就可以了。
再比如查字典,給了一個字,怎麼才能查到它?通過讀音,知道它的首字母,就很容易的去從首字母找到它。如果字典是亂的,就完全無從下手,這就是hash演算法的東西,通過能夠區分出來的特徵,縮小查找范圍,加快查找效率。
同樣的很多,都是可以用到程序里的,很容易理解
㈡ 什麼是數據結構和演算法分析在編程里起到什麼作用
編程是為了解決問題,這些問題並表都是數值計算,其所處理的數據並不都是數值,但計算機所能處理的最終是0和1的二進制串,所以需要把問題中的數據用計算機能處理的方式來表示,這就需要數據結構。
簡單的說,數據結構是數據在計算機中的表示方式,有邏輯結構和物理結構之分,如邏輯上同樣的隊列,物理上可以是順序存儲,也可以是鏈式存儲。
通俗的講,演算法就是解決問題的方法,比如同樣的排序,可以用冒泡排序、插入排序等,不同的演算法可以達到相同的目標,但是效率可能有所不同。
㈢ 什麼是數據結構和演算法學演算法還需要去了解數據結構嗎
你這理解不完全正確。
因為數據結構不只是內存中數據的排列,它是對數據的一種組織方式,就像圖書館要排書一樣,是為了便於操作,同時它本身也集成了對通用操作:比如查找、比較等的支持。數組不是一種數據結構,而是一種數據類型。一個完整的數據結構包括邏輯結構和存儲結構。通常選擇了數據結構,演算法也隨之確定,是數據而不是演算法是系統構造的關鍵因素。
因此在語言實現上,數據結構通常也會包含與之相對應的演算法集合,這些演算法是指基本演算法:查找、索引、比較等。
數據結構的邏輯結構和硬體是沒有關系的,而其存儲結構受到計算機硬體系統工作方式的影響,通常這點影響在於數據時順序存儲還是離散存儲。演算法的基礎是數據結構。只有指定明確的數據結構,演算法才能設計完成,脫離數據結構,演算法是無法,也不可能成立的。因為不需要數據的演算法就不是一個有效的計算機演算法,演算法中任何對數據的組織形式都可以被稱之為數據結構。
2.數據結構在編程中的地位是極其重要的,是一個程序實現的基礎中的基礎,在此基礎上才能構建演算法。通常而言,你不了解什麼高深的演算法,一樣能完成工作,但是如果你不了解基本的數據結構,那麼可以說,你根本就不能完成一個任何有實質性內容的程序。Donald Ervin Knuth教授在其《計算機程序設計藝術》的第一卷《基本演算法》中花費的絕大部分的篇幅去論述數據結構。由此可見數據結構對演算法的重要性。
㈣ 數據結構與演算法在計算機領域或行業之中到底占據著什麼樣的重要地位
演算法是程序的靈魂,架構是靈魂的軀體,最近對這兩句話感觸很深,但很多程序員甚至忽略演算法存在,更不要說是架構層面的東西,有些程序員甚至有些疑問,做編程也有幾年了碰到關於演算法的東西實在是很少。
在學習演算法之前首先要掌握數據結構,因為數據結構裡面很多基礎,像隊列,棧,鏈表,二叉樹這些都是演算法基礎,因為再復雜的演算法也是基礎的東西組合起來的,復雜的演算法涉及到數學知識了,所以專業的演算法工程師需要具備良好的數學底子。但數據結構更多是用在功能模塊裡面編程模型的設計上,有些程序員在設計模塊功能的時候。