1樓:
不一樣。
資料結構,無論複雜或簡單,只是資料。
演算法是計算機可執行的數值計算方法,它加工資料,產出資料。
資料是原料和製成品。
演算法是工廠,是生產流水線。
演算法和資料有關,但兩者不一樣。
蛋糕廠同雞蛋,麵粉有關,但蛋糕廠不同於原料。
2樓:碼寶寶呀
這個肯定是不一樣,有區別的。資料是一切能輸入計算機中的資訊的總和,結構是指資料之間的關係。資料結構就是將資料及其之間的關係有效地儲存在計算機中並進行基本操作。
演算法是對特定問題求解步驟的一種描述,通俗講就是解決問題的方法和策略。
但是他們又是相輔相成的。只有資料結構沒有演算法,相當於只把資料儲存到計算機中,而沒有有效的方法去處理,就像一幢只有框架的爛尾樓;若只有演算法,沒有資料結構,就像沙漠裡的海市蜃樓,只不過是空中樓閣罷了。
資料結構是演算法實現的基礎,演算法總是要依賴於某種資料結構來實現的。資料結構是資料間的有機關係,而演算法是對資料的操作步驟;兩者不可分開來談,不能脫離演算法來討論資料結構,也不能脫離資料結構研究演算法。
如果你還不太清楚,或者想知道的更多,可以去了解一下小碼哥李明傑。
3樓:匿名使用者
不一樣。
說白一點:
演算法是完成某件事的方法
資料結構是實現這個方法的方法。
程式就是資料結構+演算法
4樓:炎藤
舉例來說明最好了
都知道資料庫吧
那個可以看作為倉庫
而資料結構是說倉庫中的物品的擺放方式,如tree,list...
而演算法是說擺放物品的行為方式,比如是塞進倉庫,拉進去,還是推進去
5樓:
不是!演算法是屬於資料結構的!
資料結構是為程式設計找最簡單的路徑!
演算法和資料結構有什麼區別??
6樓:匿名使用者
一、指代不同bai
1、演算法:是du指解題方****zhi
而完整的描述,是一系列dao解決問題的清晰指令。
內2、資料結構:指容
相互之間存在一種或多種特定關係的資料元素的集合。
二、目的不同
1、演算法:指令描述的是一個計算,當其執行時能從一個初始狀態和(可能為空的)初始輸入開始,經過一系列有限而清晰定義的狀態,最終產生輸出並停止於一個終態。
2、資料結構:研究的是資料的邏輯結構和資料的物理結構之間的相互關係,並對這種結構定義相適應的運算,設計出相應的演算法,並確保經過這些運算以後所得到的新結構仍保持原來的結構型別。
三、特點不同
1、演算法:演算法中執行的任何計算步驟都是可以被分解為基本的可執行的操作步驟,即每個計算步驟都可以在有限時間內完成。
2、資料結構:核心技術是分解與抽象。通過分解可以劃分出資料的3個層次;再通過抽象,捨棄資料元素的具體內容,就得到邏輯結構。
7樓:匿名使用者
資料結構是演算法實現的基礎,演算法總是要依賴於某種資料結構來實現的。往往是版在發展一種演算法權的時候,構建了適合於這種演算法的資料結構。一種資料結構如果脫離了演算法,那還有什麼用呢?
實際上也不存在一本書單純的講資料結構,或者單純的講演算法。當然兩者也是有一定區別的,演算法更加的抽象一些,側重於對問題的建模,而資料結構則是具體實現方面的問題了,兩者是相輔相成的。
8樓:涼念若櫻花妖嬈
其實兩者bai可以說關聯不du大。
演算法就是一個zhi
處理的方法,比如大學dao裡基礎的排序演算法,回就是為了完成對一組資料排答序。查詢演算法,就是為了在一個集合中查詢需要的項。除此之外,還有很多演算法,比方說,加密、壓縮、影象處理。
而資料結構就是資料的結構。比方說佇列、堆、棧、連結串列、樹等。
大學裡的《演算法與資料結構》這門課是個入門的演算法課和資料結構課程。教授針對不同的資料結構進行的排序、查詢、遍歷的不同演算法。僅是演算法基礎,就像大學裡都是以c語言作為入門語言一樣的。
9樓:碼寶寶呀
演算法和資料結
bai構不是一個概念
du,數zhi據結構+演算法=程式。dao
演算法是解題的步內驟,是指令的有限序列容。它們規定了解決某一特定型別問題的一系列運算,是對解題方****與完整的描述。制定一個演算法,一般要經過設計、確認、分析、編碼、測試、除錯和計時等階段。
資料結構是指相互之間存在著一種或者多種關係的資料元素的集合。在任何問題中,資料元素之間總是存在聯絡的。把某一資料物件及該資料物件中所有資料成員之間的關係組成的實體叫做資料結構,資料結構分為四種基本結構,集合結構,線性結構,樹形結構圖形結構四種。
以上就是資料結構與演算法的區別,詳細的你可以去小碼哥李明傑瞭解一下。
演算法和資料結構有什麼區別
10樓:匿名使用者
其實兩者可以說關聯不大。
演算法就是一個處理的方法,比如大學裡基礎的排序演算法,就是為了完成對一組資料排序。查詢演算法,就是為了在一個集合中查詢需要的項。除此之外,還有很多演算法,比方說,加密、壓縮、影象處理。
而資料結構就是資料的結構。比方說佇列、堆、棧、連結串列、樹等等。
大學裡的《演算法與資料結構》這門課是個入門的演算法課和資料結構課程。教授針對不同的資料結構進行的排序、查詢、遍歷的不同演算法。僅是演算法基礎,就象大學裡都是以c語言作為入門語言一樣的。
11樓:禮怡合從珊
佇列是先入先出,而堆疊是先進後出,這是不同點,相同點是兩者都是順序結構,
氣泡排序:將被排序的記錄陣列r[1..n]垂直排列,每個記錄r看作是重量為r.
key的氣泡。根據輕氣泡不能在重氣泡之下的原則,從下往上掃描陣列r:凡掃描到違反本原則的輕氣泡,就使其向上"飄浮"。
如此反覆進行,直到最後任何兩個氣泡都是輕者在上,重者在下為止。舉個例子吧!
比如我們要對一個包含了3個元素的陣列按照升序進行排序,我們首先將會把第三個元素的值與第二個元素的值進行比較,如果第三個元素的值小於第二個數的值,則交換這兩個元素的值,接下來,我們將第二個元素的值,再與第一個元素的值進行比較,同上面一樣,如果發現下面的元素的值小於上面元素的值,則交換這兩個值。
插入排序:
有一個已經有序的資料序列,要求在這個已經排好的資料序列中插入一個數,但要求插入後此資料序列仍然有序,這個時候就要用到一種新的排序方法——插入排序法,插入排序的基本操作就是將一個資料插入到已經排好序的有序資料中,從而得到一個新的、個數加一的有序資料。
12樓:環逸希翠絲
佇列:一頭進一頭出
棧:先進先出,只能一頭出.
氣泡排序:從第一個開始比較,碰到小的交換.
插入排序:選定一個數字,然後依次比較,碰到比他大的就插在他後面.(應該對錶先排序)
資料結構和演算法有什麼關係?資料結構就是演算法嗎?
13樓:天涯虧科
著名資料專家沃斯曾說:演算法+資料結構=程式
14樓:_了卻了
它們可以相互區別也可以相互統一。廣義上講,演算法是某一系列運算步 驟,它表達解決某一類計算問題的一般方法,對這類方法的任何一個輸入,它可以按步驟一步一步計算,最終產生一個輸出。但是對於所有的計算問題,都離不開要 計算的物件或者要處理的資訊,而如何高效的把它們組織起來,就是資料結構關心的問題,所以演算法是離不開資料結構的。
單講資料結構,它指資料的組織結構,它 有邏輯結構和物理結構,另外還包括一些定義在某種資料結構上的演算法,它只限於某一特定資料結構中使用,可以認為它是資料結構的組成部分,比如棧的壓棧操 作,這些演算法雖小但很重要,可以看成是它們決定了資料結構的外部特性,比如同樣是堆,有二叉堆,二項式堆,它們除了內部結構的不同,最大的還是外部操作的 演算法效能不同,也決定了它們本質上的不同,如果外部效能一樣,那研究將是毫無意義的。總之,不能脫離演算法討論資料結構,也不能脫離資料結構研究演算法。
15樓:匿名使用者
資料結構是資料間的有機
關係,演算法是對資料的操作步驟。這兩個概念間的邏輯關係貫穿了整個程式世界,首先二者表現為不可分割的關係。沒有資料間的有機關係,程式根本無法設計,例如,設計a+b的程式,你總得找到a和b的值吧,a和b必須是可以互相找到的才能進行程式運算,a和b就必然要聯結成一定的關係,或是線性關係,或是樹型關係,或者是圖型關係,你的程式才能產生,雜亂無章的資料-------就是沒有資料結構的資料,是沒有演算法的,你試試做一個電子運動的時間和座標對應的演算法看看行不行,顯然不行。
因為有了資料結構,演算法才能誕生。反過來,演算法又是資料結構得以維持的一個條件,沒有演算法,資料根本無法有規律的打交道,也就是說資料的間只會是雜亂無章地碰撞,這樣資料結構就會消滅。演算法是絕對運動的,資料結構是相對靜止的,二者是不可分割的關係。
資料結構和演算法不僅僅是計算機中才有的,計算機是後來誕生的東西,計算機的概念**於自然界,自然界中例如一棵樹的根和樹葉之間的資訊交流就是一個演算法,是建立在根資料和樹葉資料之間可以相通的關係上的演算法,計算機只是自然界的一個模擬,程式語言不是程式的一個要素,因為自然界是沒有語言的,但是有程式,這是唯物主義的觀點。
演算法是活潑的,資料結構是遲鈍的,演算法的發展要求資料結構跟著發展,否則就會阻礙演算法的發展,演算法的發展或遲或早必然衝破資料結構的束縛,二者必然將建立在一個新的起點繼續著矛盾運動,
資料結構是相對靜止的,演算法是絕對運動的,這二者首先表現為不可分割的關係。沒有一定組織關係的資料,演算法就無法產生,你不可能對一堆雜亂無章的資料編寫演算法,你要想對資料進行操作,必須能夠找到資料,這樣就必須將它們按照一定規律組織起來-----這個過程不一定是演算法,但是演算法可以實現這個過程,資料結構是演算法得以誕生的條件-----否則就是資料間的雜亂無章的運動,但是運動並不是演算法。反過來演算法是資料結構得以維持的條件,沒有了演算法對資料進行操作,資料就不會有規律地進行互動,資料結構也就隨之消滅。
客觀世界是物質的,物質是運動的,運動是有規律的,有規律的運動就是程式,客觀世界是存在程式的,所以不用擔心沒有演算法世界會怎麼樣,如果沒有規律的運動,就不會有人。
演算法的革命的、活潑的,資料結構是反動的、遲鈍的,演算法的發展必然推動資料結構的發展,簡單的資料結構不可能適應複雜的演算法,只有提供多種複合的資料結構才能為複雜的演算法提供新的空間,演算法的發展必然會衝破資料結構的束縛-----不過不要忘記了這種物的規律是由人來實現的。
16樓:碼寶寶呀
首先你要弄清楚資料結構是什麼?資料結構呢其實就是一種儲存資料之間的邏輯結構:比如我們學過的線性結構:
順序表啦,連結串列啦;層次結構:樹啦。合適的資料結構可以帶來更高的執行效率和儲存效率,與相應解決實際問題演算法的適應性也就越高,這也就是為什麼一些演算法指定了資料儲存必須以某種特定的資料結才行。
一般都是根據合適的資料結構來設計演算法,而不是根據演算法來設計資料結構。
演算法和資料結構往往是互不分開的。離開了演算法,資料結構就顯得毫無意義,而沒有了資料結構演算法就沒有實現的條件。良好的資料結構思想就是一種高效的演算法,但是資料結構不等於演算法。
只有當資料結構用於處理某個特定問題型別的時候,資料結構才會體現為演算法。要想細緻的瞭解,就要多看書,因為這東西畢竟發展了那麼多年,一兩句話是說不清楚的。想知道更多的資料結構與演算法知識嗎?
可以去了解一下小碼哥李明傑。
學資料結構和演算法要學高數麼,學資料結構和演算法之前要先學什麼?
高數和資料結構和演算法沒有必然的關係!如果不是像教授搞研究一樣,一般高深的數學知識是用不上的,中學的數學知識足夠研究長見的演算法了!你可以先去學資料結構和演算法,不用想太多,行動就是,用著數學了再說! 我學的是計算機和數學的交叉課程!總結一下,如果你不是做研究和向很前沿發展 1.資料結構和演算法很重...
C需要先學習資料結構和演算法嗎??新人報道
您是想學c,還是想學c 因為這是兩種不同的程式語言,c語言是程序導向的,c 是物件導向的。如果您兩者都想學的話,建議您千萬不要把c 看成是c的升級版。它們的核心思想 是不一樣的。學一種語言,先要了解它是怎麼產生的,它的設計者 再設計這種語言時 是怎麼考慮的。您說的 資料結構 和 演算法,這個學起來花...
初學者應該從哪些方面學好《資料結構和演算法》(這簡直就像看天書一樣)
一丨丿乛丶 資料結構和演算法 這樣的書適合至少會用一門程序導向的語言程式設計的讀者,比如c語言。講解資料結構的書一般是用程序導向的語言或偽 來描述,所以有c語言基礎的讀者還是比較容易理解書中 含意的。如果你對程序導向的語言不甚瞭解,建議先看看其中一種,其他的可以觸類旁通。之後就是研究 和自己動手實現...