㈠ 數據結構和演算法有什麼關系數據結構就是演算法嗎
首先你要弄清楚數據結構是什麼?數據結構呢其實就是一種存儲數據之間的邏輯結構:比如我們學過的線性結構:順序表啦,鏈表啦;層次結構:樹啦。合適的數據結構可以帶來更高的運行效率和存儲效率,與相應解決實際問題演算法的適應性也就越高,這也就是為什麼一些演算法指定了數據存儲必須以某種特定的數據結才行。一般都是根據合適的數據結構來設計演算法,而不是根據演算法來設計數據結構。
演算法和數據結構往往是互不分開的。離開了演算法,數據結構就顯得毫無意義,而沒有了數據結構演算法就沒有實現的條件。良好的數據結構思想就是一種高效的演算法,但是數據結構不等於演算法。只有當數據結構用於處理某個特定問題類型的時候,數據結構才會體現為演算法。要想細致的了解,就要多看書,因為這東西畢竟發展了那麼多年,一兩句話是說不清楚的。想知道更多的數據結構與演算法知識嗎?可以去了解一下小碼哥李明傑。
㈡ 數據結構和演算法
數據結構和演算法不是一個概念。
Data structure
and
Algorithm
書名字是兩種的話說裡面都有,一般的話這兩種是分不開的。如果只說數據結構的話書中比名字是兩種的少一部分內容,應該可以這樣理解。
單純的演算法有動態規劃,貪心,枚舉之類的,不需要比較麻煩的數據結構。
另外大部分的演算法都需要數據結構輔助,比如說搜索(隊列,棧或其它),單源最短路演算法(需要圖的結構,這部分應該屬於數據結構與演算法),還有些比較麻煩的。
數據結構中一般會存在演算法,比如二叉樹,平衡二叉樹,堆,棧,隊列……還有些比較麻煩的,線段樹,紅黑樹…………這之類的,裡面的數據結構的操作往往會涉及到一些精心設計的演算法來達到高效的目的。
二者不能是包含關系。
㈢ 演算法和數據結構有什麼區別
一、指代不同
1、演算法:是指解題方案的准確而完整的描述,是一系列解決問題的清晰指令。
2、數據結構:指相互之間存在一種或多種特定關系的數據元素的集合。
二、目的不同
1、演算法:指令描述的是一個計算,當其運行時能從一個初始狀態和(可能為空的)初始輸入開始,經過一系列有限而清晰定義的狀態,最終產生輸出並停止於一個終態。
2、數據結構:研究的是數據的邏輯結構和數據的物理結構之間的相互關系,並對這種結構定義相適應的運算,設計出相應的演算法,並確保經過這些運算以後所得到的新結構仍保持原來的結構類型。
三、特點不同
1、演算法:演算法中執行的任何計算步驟都是可以被分解為基本的可執行的操作步驟,即每個計算步驟都可以在有限時間內完成。
2、數據結構:核心技術是分解與抽象。通過分解可以劃分出數據的3個層次;再通過抽象,舍棄數據元素的具體內容,就得到邏輯結構。
㈣ 數據和演算法,誰更重要
數據只是基礎,如何建構起有效的演算法、模型比數據本身更重要,最起碼對目前而言是這樣的。
理想中的大數據的終極形態是不用構建模型,或者說已經構建了全模型,不用針對每次分析的目的去單獨建模,數據自身會從數據特性,規律去進行邏輯性分析(非數理分析),人們只需要將所有數據輸入,機器就能告訴人們這些數據中,哪些數據說明了什麼問題,大數據的輸出成果將不是一份報告,而是一個體系,沒有一份報告能容納如此多的結果。到了那個時候,確實是更多的數據勝過更好的演算法,因為那時候已經沒有了演算法,沒有什麼是不能計算的。
㈤ 數據結構與演算法
赤水殘陽 的說法有問題,什麼叫學好數據結構?你能用數據結構的知識實現STL庫、Boost庫、解決實際編程問題。
①要學好數據結構,至少要學好一門計算機語言。
②所以如果你的計算機語言是C++,那麼不學好C++,數據結構絕對無法學好(鐵定)。
③為什麼?
計算機開發領域專業核心課程就幾門:數據結構、操作系統原理、資料庫系統原理、匯編語言程序設計。
而數據結構是這另外幾門核心課程的基礎。
數據結構最終是為了實現,如果你不邊學邊實驗C++代碼,那麼學起來就如走馬觀花,無法從細節上庖丁解牛。
到時候,數據結構會出很多編程要求,假設一個人指針沒學好,單向鏈表、雙向鏈表、二叉樹、圖都沒法編程。
不過,就算你C++之前沒怎麼投入時間,放假半個月到一個月集中精力投入時間,也是可以彌補的,甚至比你們班大多數做得更好:不斷編程實踐。
㈥ 數據與結構演算法
不是叫做:數據與結構演算法,而是應該叫做:《數據結構與演算法》,其中:數據結構指的是:順序表、堆棧、鏈表、二叉樹、圖等;而演算法一般指的是:各種搜索演算法(順序搜索、二分搜素等)、以及各種排序演算法等。
至於說程序中到底是哪一個地方出現 bug,那可不是通過在紙上分析能夠分析出來的,而是必須要親自上機在機器上面調試出來的。
㈦ 數據挖掘與演算法是什麼關系
data mining:數據挖掘一般是指從大量的數據中自動搜索隱藏於其中的有著特殊關系性(屬於Association rule learning)的信息的過程。reference:數據挖掘2.聚類和分類:關於這些,我相信再好的演算法,都會有一定的准確度,我沒有說這些東西不重要。
3.如果你的數據量足夠大,舉個例子說明吧,數據挖掘是這樣做的,你要判斷什麼樣的蘋果是甜的,應該這樣做,去超市買蘋果,總結甜蘋果的特徵 A B ,第二次你也去買蘋果,就選具備這些特徵值的。存的的問題有可能買到的蘋果還不是甜的,可能原因是要同時包含特徵C。但是如果你數據量足夠大,足夠大,你要買的蘋果直接能夠找到,一模一樣的蘋果,是不是甜的,都已經知道啦,直接取出來不就好了嗎?前提是數據你想要什麼有什麼。
㈧ 數據結構與演算法
看題可知實際上就是要從表A中刪除出現在表B和表C交集D里的元素
那麼首先肯定是要先確定表B和表C和交集D,由於ABC都是遞增線性表,所以可以確定B和表C和交集D的邊界(可以不用從頭到尾來遍歷表B和表C,屬於優化范疇),之後再遍歷A表刪除其在D中的元素,遍歷時同樣適用上面的邊界處理
既然是要嵌套遍歷三個表那麼時間復雜度自然就是na*nb*nc