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

2021-05-17 09:12:54 字數 5405 閱讀 1882

1樓:匿名使用者

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

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

2樓:匿名使用者

資料結構就是

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

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

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

3樓:匿名使用者

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

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

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

4樓:白懷彬

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

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

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

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

5樓:濮陽驕越意

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

先說資料結構

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

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

lz可以體會下。

6樓:戶長星印綠

資料結構就是復

計算機儲存制

、組織資料的方式,它是

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

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

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

7樓:義宇寰碩林

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

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

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

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

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

它們來可以相互區別

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

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

9樓:天涯虧科

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

10樓:_了卻了

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

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

11樓:匿名使用者

資料結構是資料間的有機

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

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

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

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

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

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

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

12樓:碼寶寶呀

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

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

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

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

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

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

13樓:匿名使用者

演算法+資料結構=程式,資料結構,內容包括數陣列、連結串列、堆疊、佇列等。

一個優秀的軟體開發師需要資料結構可以很高效的處理複雜的問題。 因為移動網際網路本身就決定了資料的重要程度。 所以資料結構演算法真的很重要, 尤其是搞大資料處理的時候。

資料結構與演算法它們可以相互區別也可以相互統一。資料結構是資料間的有機關係,演算法是對資料的操作步驟。

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

資料結構是按照邏輯關係組織起來的一批資料,按期儲存結構把他儲存在計算機中,並在這些資料上定義一個運算的集合。(簡單說就是先在稿紙上畫出這個資料怎麼組織起來,這是邏輯關係,然後在計算機中怎麼儲存,是按順序存,還是加個指標索引的存,這是儲存結構,最後還要定義一些運算,就是這個資料能完成那些操作)

資料結構學的到底是什麼?和演算法有什麼關係?

15樓:河蟹蛇薈

首先,資料結構是一門計算機語言學的基礎學科,它不屬於任何一門語言,其體現的是幾乎所有標準語言的演算法的思想。

上面的概念有一些模糊,我們現在來具體說一說,相信你門的資料結構使用的是一門具體的語言比如c/c++語言來說明,那是為了輔助的學習資料結構,而資料結構本身不屬於任何語言(相信你把書上的程式敲到電腦裡面是不能通過的吧,其只是描述了過程,要除錯程式,還需要修改和增加一些東西)。你們的書上開始應該在講究資料的物理儲存結構/邏輯儲存結構等概念,說明資料結構首先就是「資料的結構」,在記憶體上的儲存方式,就是物理的儲存結構,在程式使用人員的思想上它是邏輯的。比如:

你們在c/c++中學習到連結串列,那麼連結串列是什麼一個概念,你們使用指標制向下一個結點的首地址,讓他們串聯起來,形成一個接一個的結點,就像顯示生活中的火車一樣。而這只是對於程式設計師的概念,但是在記憶體中儲存的方式是怎樣的那?對於你程式設計師來說這是「透明」的,其內部分配空間在那裡,都是隨機的,而記憶體中也沒有一個又一根的線將他們串聯起來,所以,這是一個物理與邏輯的概念,對於我們程式設計師只需要知道這些就可以了,而我們主要要研究的是「邏輯結構」。

我可以給你一個我自己總結的一個概念:所有的演算法必須基於資料結構生存。也就是說,我們對於任何演算法的編寫,必須依賴一個已經存在的資料結構來對它進行操作,資料結構成為演算法的操作物件,這也是為什麼演算法和資料結構兩門分類不分家的概念,演算法在沒有資料結構的情況下,沒有任何存在的意義;而資料結構沒有演算法就等於是一個屍體而沒有靈魂。

資料結構與演算法和c語言有什麼關係嗎?

計算機資料結構課程裡面,演算法和程式的聯絡和區別是什麼?

16樓:匿名使用者

從計算機的角度講,程式是用一種計算機能理解並執行的計算機語言描述解決問題的方法步驟。程式設計:是分析解決問題的方法步驟,並將其記錄下來的過程。

演算法:解決問題的方法步驟。程式設計的關鍵就是將演算法描述出來。

那麼程式是計算機能理解的並能執行的指令集;而演算法只是一種解決問題的方法,是一種程式設計思想。資料結構課程裡面的**,都是偽**,也就是說,用c編譯器編譯是通不過的,還要做很多的修改才可以,演算法是程式設計的核心,演算法出來了,我們就可以考慮用哪種語言實現比較簡單,不一定要選c,我們學資料結構學的也就是一種思想,學會如何去解決問題,這才是最重要的,用c實現次之。在資料結構c語言版裡面,我們只是將這種資料結構的操作用偽c**描述出來而已。

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

程式 資料結構 演算法 資料結構是相互之間存在的一種或多種特定關係的資料元素的集合。包括4類基本的結構 集合 線形結構 樹形結構 圖狀或網狀結構。通俗點就是資料的邏輯結構,比方說這些資料在記憶體中以什麼樣的結構存放。演算法實際是程式設計過程中完成一件事採用的方法,比方說現實生活中做數學題時兩個人都將...

哪些資料結構與演算法需要學習,什麼是資料結構和演算法學演算法還需要去了解資料結構嗎

2談談面向bai物件,物件就是一種du資料結構zhi 什麼是資料結構和演算法?學演算法還需要去了解資料結構嗎?你這理解不完全正確。因為資料結構不只是記憶體中資料的排列,它是對資料的一種組織方式,就像圖書館要排書一樣,是為了便於操作,同時它本身也整合了對通用操作 比如查詢 比較等的支援。陣列不是一種資...

在C語言程式設計中資料結構與演算法是怎麼體現的,或者說怎麼理解資料

舉個bai例子,你寫個程式,要存du全校學生zhi的資訊。首先學生數量dao可能是專變動的,你不可能寫屬成固定陣列。你可以思考下怎麼存。這時候就可以建立一個連結串列,在每次輸入一個新生時把他掛入連結串列。這樣就可以遍歷學生資訊了。這裡只是講資料結構對儲存的作用,另外一方面是,好的資料結構,可以使演算...