什麼是資料結構什麼是演算法演算法與程式有什麼關係

2021-03-03 20:49:34 字數 5194 閱讀 3623

1樓:濮陽驕越意

拿華騰的交通卡系統做例子吧

先說資料結構

:程式裡面有很多使用者資訊,這些資訊是用專結構體存屬放,是用連結串列的形式,還是用雜湊表等等的方法進行排列,這個就是資料結構

演算法:要從這些資料結構裡找出一個結點,是用遍歷搜尋呢還是用折半搜尋之類的方法,叫做演算法。

lz可以體會下。

2樓:戶長星印綠

資料結構就是復

計算機儲存制

、組織資料的方式,它是

bai人du們為了實現各種各樣的演算法和zhi程式而設dao計出來的,具有一定性質或規律。比如棧可以用來實現遞迴演算法的非遞迴化,圖可以用來處理網路問題。

演算法你可以理解為用程式解決實際問題的方法。比如排序演算法,查詢演算法。

程式就是基於某種或某幾種資料結構,採用某種演算法或某幾種演算法去解決問題的過程。

3樓:義宇寰碩林

相互之間存在一種或多種特定關係的資料元素的集合。(起始關於什麼是資料結構,並沒有嚴格的定義)

演算法是對特定問題求解步驟的一般描述,是有限指令的集合。

程式=演算法+資料結構(c語言)

資料結構和演算法有什麼關係?資料結構就是演算法嗎?

4樓:安徽新華電腦專修學院

它們來可以相互區別

也可以相互自統一。廣義上講,演算法是某一系列運算步 驟,它表達解決某一類計算問題的一般方法,對這類方法的任何一個輸入,它可以按步驟一步一步計算,最終產生一個輸出。但是對於所有的計算問題,都離不開要 計算的物件或者要處理的資訊,而如何高效的把它們組織起來,就是資料結構關心的問題,所以演算法是離不開資料結構的。

演算法和資料結構有什麼區別??

5樓:匿名使用者

一、指代不同bai

1、演算法:是du指解題方****zhi

而完整的描述,是一系列dao解決問題的清晰指令。

內2、資料結構:指容

相互之間存在一種或多種特定關係的資料元素的集合。

二、目的不同

1、演算法:指令描述的是一個計算,當其執行時能從一個初始狀態和(可能為空的)初始輸入開始,經過一系列有限而清晰定義的狀態,最終產生輸出並停止於一個終態。

2、資料結構:研究的是資料的邏輯結構和資料的物理結構之間的相互關係,並對這種結構定義相適應的運算,設計出相應的演算法,並確保經過這些運算以後所得到的新結構仍保持原來的結構型別。

三、特點不同

1、演算法:演算法中執行的任何計算步驟都是可以被分解為基本的可執行的操作步驟,即每個計算步驟都可以在有限時間內完成。

2、資料結構:核心技術是分解與抽象。通過分解可以劃分出資料的3個層次;再通過抽象,捨棄資料元素的具體內容,就得到邏輯結構。

6樓:匿名使用者

資料結構是演算法實現的基礎,演算法總是要依賴於某種資料結構來實現的。往往是版在發展一種演算法權的時候,構建了適合於這種演算法的資料結構。一種資料結構如果脫離了演算法,那還有什麼用呢?

實際上也不存在一本書單純的講資料結構,或者單純的講演算法。當然兩者也是有一定區別的,演算法更加的抽象一些,側重於對問題的建模,而資料結構則是具體實現方面的問題了,兩者是相輔相成的。

7樓:涼念若櫻花妖嬈

其實兩者bai可以說關聯不du大。

演算法就是一個zhi

處理的方法,比如大學dao裡基礎的排序演算法,回就是為了完成對一組資料排答序。查詢演算法,就是為了在一個集合中查詢需要的項。除此之外,還有很多演算法,比方說,加密、壓縮、影象處理。

而資料結構就是資料的結構。比方說佇列、堆、棧、連結串列、樹等。

大學裡的《演算法與資料結構》這門課是個入門的演算法課和資料結構課程。教授針對不同的資料結構進行的排序、查詢、遍歷的不同演算法。僅是演算法基礎,就像大學裡都是以c語言作為入門語言一樣的。

8樓:碼寶寶呀

演算法和資料結

bai構不是一個概念

du,數zhi據結構+演算法=程式。dao

演算法是解題的步內驟,是指令的有限序列容。它們規定了解決某一特定型別問題的一系列運算,是對解題方****與完整的描述。制定一個演算法,一般要經過設計、確認、分析、編碼、測試、除錯和計時等階段。

資料結構是指相互之間存在著一種或者多種關係的資料元素的集合。在任何問題中,資料元素之間總是存在聯絡的。把某一資料物件及該資料物件中所有資料成員之間的關係組成的實體叫做資料結構,資料結構分為四種基本結構,集合結構,線性結構,樹形結構圖形結構四種。

以上就是資料結構與演算法的區別,詳細的你可以去小碼哥李明傑瞭解一下。

什麼是資料結構?什麼是演算法?演算法與程式有什麼關係?

9樓:匿名使用者

資料結構與演算法屬於開發人員的基本內功,也能訓練大腦的思考能力,掌握一次,終生受益。紮實的資料結構與演算法功底,能讓我們站在更高的角度去思考**、寫出效能更優的程式,能讓我們更快速地學習上手各種新技術(比如人工智慧、區塊鏈等),也能讓我們敲開更高階程式設計領域的大門。

資料結構與演算法更是各大名企面試題中的常客,如果不想被行業拋棄、想進入更大的名企、在it道路上走得更遠,掌握資料結構與演算法是非常有必要。

10樓:匿名使用者

資料結構就是

復計算機儲存、組織制資料的方式,它是人們為了實現各種各樣的演算法和程式而設計出來的,具有一定性質或規律。比如棧可以用來實現遞迴演算法的非遞迴化,圖可以用來處理網路問題。

演算法你可以理解為用程式解決實際問題的方法。比如排序演算法,查詢演算法。

程式就是基於某種或某幾種資料結構,採用某種演算法或某幾種演算法去解決問題的過程。

11樓:匿名使用者

資料結構是相互之間存在一種或多種特定關係的資料元素的集合。

演算法是對特定問題求解步驟的一種描述,它是指令的有限序列,其中每一條指令表示一個或多個操作。

程式是演算法的實現語言。

12樓:白懷彬

相互之間存在一種或多種特定關係的資料元素的集合。(起始關於什麼是資料結構,並沒有嚴格的定義)

演算法是對特定問題求解步驟的一般描述,是有限指令的集合。

程式=演算法+資料結構(c語言)

資料結構和演算法有什麼關係?資料結構就是演算法嗎?

13樓:天涯虧科

著名資料專家沃斯曾說:演算法+資料結構=程式

14樓:_了卻了

它們可以相互區別也可以相互統一。廣義上講,演算法是某一系列運算步 驟,它表達解決某一類計算問題的一般方法,對這類方法的任何一個輸入,它可以按步驟一步一步計算,最終產生一個輸出。但是對於所有的計算問題,都離不開要 計算的物件或者要處理的資訊,而如何高效的把它們組織起來,就是資料結構關心的問題,所以演算法是離不開資料結構的。

單講資料結構,它指資料的組織結構,它 有邏輯結構和物理結構,另外還包括一些定義在某種資料結構上的演算法,它只限於某一特定資料結構中使用,可以認為它是資料結構的組成部分,比如棧的壓棧操 作,這些演算法雖小但很重要,可以看成是它們決定了資料結構的外部特性,比如同樣是堆,有二叉堆,二項式堆,它們除了內部結構的不同,最大的還是外部操作的 演算法效能不同,也決定了它們本質上的不同,如果外部效能一樣,那研究將是毫無意義的。總之,不能脫離演算法討論資料結構,也不能脫離資料結構研究演算法。

15樓:匿名使用者

資料結構是資料間的有機

關係,演算法是對資料的操作步驟。這兩個概念間的邏輯關係貫穿了整個程式世界,首先二者表現為不可分割的關係。沒有資料間的有機關係,程式根本無法設計,例如,設計a+b的程式,你總得找到a和b的值吧,a和b必須是可以互相找到的才能進行程式運算,a和b就必然要聯結成一定的關係,或是線性關係,或是樹型關係,或者是圖型關係,你的程式才能產生,雜亂無章的資料-------就是沒有資料結構的資料,是沒有演算法的,你試試做一個電子運動的時間和座標對應的演算法看看行不行,顯然不行。

因為有了資料結構,演算法才能誕生。反過來,演算法又是資料結構得以維持的一個條件,沒有演算法,資料根本無法有規律的打交道,也就是說資料的間只會是雜亂無章地碰撞,這樣資料結構就會消滅。演算法是絕對運動的,資料結構是相對靜止的,二者是不可分割的關係。

資料結構和演算法不僅僅是計算機中才有的,計算機是後來誕生的東西,計算機的概念**於自然界,自然界中例如一棵樹的根和樹葉之間的資訊交流就是一個演算法,是建立在根資料和樹葉資料之間可以相通的關係上的演算法,計算機只是自然界的一個模擬,程式語言不是程式的一個要素,因為自然界是沒有語言的,但是有程式,這是唯物主義的觀點。

演算法是活潑的,資料結構是遲鈍的,演算法的發展要求資料結構跟著發展,否則就會阻礙演算法的發展,演算法的發展或遲或早必然衝破資料結構的束縛,二者必然將建立在一個新的起點繼續著矛盾運動,

資料結構是相對靜止的,演算法是絕對運動的,這二者首先表現為不可分割的關係。沒有一定組織關係的資料,演算法就無法產生,你不可能對一堆雜亂無章的資料編寫演算法,你要想對資料進行操作,必須能夠找到資料,這樣就必須將它們按照一定規律組織起來-----這個過程不一定是演算法,但是演算法可以實現這個過程,資料結構是演算法得以誕生的條件-----否則就是資料間的雜亂無章的運動,但是運動並不是演算法。反過來演算法是資料結構得以維持的條件,沒有了演算法對資料進行操作,資料就不會有規律地進行互動,資料結構也就隨之消滅。

客觀世界是物質的,物質是運動的,運動是有規律的,有規律的運動就是程式,客觀世界是存在程式的,所以不用擔心沒有演算法世界會怎麼樣,如果沒有規律的運動,就不會有人。

演算法的革命的、活潑的,資料結構是反動的、遲鈍的,演算法的發展必然推動資料結構的發展,簡單的資料結構不可能適應複雜的演算法,只有提供多種複合的資料結構才能為複雜的演算法提供新的空間,演算法的發展必然會衝破資料結構的束縛-----不過不要忘記了這種物的規律是由人來實現的。

16樓:碼寶寶呀

首先你要弄清楚資料結構是什麼?資料結構呢其實就是一種儲存資料之間的邏輯結構:比如我們學過的線性結構:

順序表啦,連結串列啦;層次結構:樹啦。合適的資料結構可以帶來更高的執行效率和儲存效率,與相應解決實際問題演算法的適應性也就越高,這也就是為什麼一些演算法指定了資料儲存必須以某種特定的資料結才行。

一般都是根據合適的資料結構來設計演算法,而不是根據演算法來設計資料結構。

演算法和資料結構往往是互不分開的。離開了演算法,資料結構就顯得毫無意義,而沒有了資料結構演算法就沒有實現的條件。良好的資料結構思想就是一種高效的演算法,但是資料結構不等於演算法。

只有當資料結構用於處理某個特定問題型別的時候,資料結構才會體現為演算法。要想細緻的瞭解,就要多看書,因為這東西畢竟發展了那麼多年,一兩句話是說不清楚的。想知道更多的資料結構與演算法知識嗎?

可以去了解一下小碼哥李明傑。

c語言與演算法和資料結構的關係,C語言與演算法和資料結構的關係

資料結構的主要作用是幫助你提升自己的程式設計思維!使你編寫程式的時候有一個好的思維和框架!使你寫的 和程式有一個好的框架!資料結構研究的是資料的邏輯結構 儲存結構 物理結構 和資料的運算.其中的資料運算就是指演算法 演算法只是具體的實現步驟的指令集合!但是演算法也是資料結構最重要的一部份!設計一個好...

資料結構和演算法的經典教材

演算法導bai論 資料結構與演算法分 du析zhi c語言描述 計算機程式設計藝dao術 計算機演算法版設計與分析權 教材是供教學用的資料,如課本 講義等。教材的定義有廣義和狹義之分。廣義的教材指課堂上和課堂外教師和學生使用的所有教學材料,比如課本 練習冊 活動冊 故事書等等。教師自己編寫或設計的材...

資料結構和演算法應該掌握到什麼程度,需要掌握哪些知識

呵呵,思想很重要,其實真正使用時,已經有很多實現,但是理解資料結專構和演算法對 屬於以後所學東西的理解是非常有用的.至於程度的話,就看你需要達到什麼程度了.像排序演算法,二分搜尋演算法,深度優先和廣度有限搜尋,當然,對於基本資料結構,棧,佇列,樹。都有一些基本的操作,而基本演算法的思想應該有 1 回...