當前位置:ag真人国际官网-ag旗舰厅官方网站 » 操作系統 » 演算法和數據結構

演算法和數據結構-ag真人国际官网

發布時間: 2022-01-08 00:06:21

演算法和數據結構有什麼區別

數據結構是演算法實現的基礎,演算法總是要依賴於某種數據結構來實現的。往往是在發展一種演算法的時候,構建了適合於這種演算法的數據結構。一種數據結構如果脫離了演算法,那還有什麼用呢?實際上也不存在一本書單純的講數據結構,或者單純的講演算法。當然兩者也是有一定區別的,演算法更加的抽象一些,側重於對問題的建模,而數據結構則是具體實現方面的問題了,兩者是相輔相成的。

㈡ 數據結構和數據結構與演算法的區別

數據結構是存儲結構,解決一類問題需要想法和結構結合起來才能有效

㈢ 應該先學演算法還是數據結構

個人愚見,數據結構是演算法的凝結品,因為各種數據常用或通用的數據結構能夠解決在實際應用中的一些問題,然而演算法就是解決問題的一套思路,當這套解決問題的思路固定之後,就會有相應成熟的數據結構產生,也就是雞和雞蛋那個先存在的問題,如果按照正常的思路,先學數據結構,然後再學演算法,不過一般在學數據結構的時候,肯定會有一些知名 的演算法會順帶地學到

㈣ 演算法和數據結構有什麼區別

其實兩者可以說關聯不大。
演算法就是一個處理的方法,比如大學里基礎的排序演算法,就是為了完成對一組數據排序。查找演算法,就是為了在一個集合中查找需要的項。除此之外,還有很多演算法,比方說,加密壓縮、圖像處理。
而數據結構就是數據的結構。比方說隊列、堆、棧、鏈表、樹等等。
大學里的《演算法與數據結構》這門課是個入門的演算法課和數據結構課程。教授針對不同的數據結構進行的排序、查找、遍歷的不同演算法。僅是演算法基礎,就象大學里都是以c語言作為入門語言一樣的。

㈤ 數據結構和演算法有什麼關系數據結構就是演算法嗎

首先你要弄清楚數據結構是什麼?數據結構呢其實就是一種存儲數據之間的邏輯結構:比如我們學過的線性結構:順序表啦,鏈表啦;層次結構:樹啦。合適的數據結構可以帶來更高的運行效率和存儲效率,與相應解決實際問題演算法的適應性也就越高,這也就是為什麼一些演算法指定了數據存儲必須以某種特定的數據結才行。一般都是根據合適的數據結構來設計演算法,而不是根據演算法來設計數據結構。


演算法和數據結構往往是互不分開的。離開了演算法,數據結構就顯得毫無意義,而沒有了數據結構演算法就沒有實現的條件。良好的數據結構思想就是一種高效的演算法,但是數據結構不等於演算法。只有當數據結構用於處理某個特定問題類型的時候,數據結構才會體現為演算法。要想細致的了解,就要多看書,因為這東西畢竟發展了那麼多年,一兩句話是說不清楚的。想知道更多的數據結構與演算法知識嗎?可以去了解一下小碼哥李明傑。

㈥ 數據結構和演算法

數據結構和演算法不是一個概念。
data structure
and
algorithm

書名字是兩種的話說裡面都有,一般的話這兩種是分不開的。如果只說數據結構的話書中比名字是兩種的少一部分內容,應該可以這樣理解。
單純的演算法有動態規劃,貪心,枚舉之類的,不需要比較麻煩的數據結構。
另外大部分的演算法都需要數據結構輔助,比如說搜索(隊列,棧或其它),單源最短路演算法(需要圖的結構,這部分應該屬於數據結構與演算法),還有些比較麻煩的。

數據結構中一般會存在演算法,比如二叉樹,平衡二叉樹,堆,棧,隊列……還有些比較麻煩的,線段樹,紅黑樹…………這之類的,裡面的數據結構的操作往往會涉及到一些精心設計的演算法來達到高效的目的。

二者不能是包含關系。

㈦ 學習演算法和數據結構有什麼用

本人乃一個數據痴迷者,在計算機的道路上,也是一個數據結構的痴迷者,現在大學裡面和同學搞開發也痴迷於資料庫,我就我個人的理解給你談一談: 首先,數據結構是一門計算機語言學的基礎學科,它不屬於任何一門語言,其體現的是幾乎所有標准語言的演算法的思想。 上面的概念有一些模糊,我們現在來具體說一說,相信你門的數據結構使用的是一門具體的語言比如c/c 語言來說明,那是為了輔助的學習數據結構,而數據結構本身不屬於任何語言(相信你把書上的程序敲到電腦裡面是不能通過的吧,其只是描述了過程,要調試程序,還需要修改和增加一些東西)。你們的書上開始應該在講究數據的物理存儲結構/邏輯存儲結構等概念,說明數據結構首先就是「數據的結構」,在內存上的存儲方式,就是物理的存儲結構,在程序使用人員的思想上它是邏輯的,比如: 你們在c/c 中學習到鏈表,那麼鏈表是什麼一個概念,你們使用指針制向下一個結點的首地址,讓他們串聯起來,形成一個接一個的結點,就像顯示生活中的火車一樣。而這只是對於程序員的概念,但是在內存中存儲的方式是怎樣的那?對於你程序員來說這是「透明」的,其內部分配空間在那裡,都是隨機的,而內存中也沒有一個又一根的線將他們串聯起來,所以,這是一個物理與邏輯的概念,對於我們程序員只需要知道這些就可以了,而我們主要要研究的是「邏輯結構」。 我可以給你一個我自己總結的一個概念:所有的演算法必須基於數據結構生存。也就是說,我們對於任何演算法的編寫,必須依賴一個已經存在的數據結構來對它進行操作,數據結構成為演算法的操作對象,這也是為什麼演算法和數據結構兩門分類不分家的概念,演算法在沒有數據結構的情況下,沒有任何存在的意義;而數據結構沒有演算法就等於是一個屍體而沒有靈魂。估計這個對於演算法的初學者可能有點暈,我們在具體的說一些東西吧: 我們在數據結構中最簡單的是什麼:我個人把書籍中線性表更加細化一層(這里是為了便於理解在這樣說的):單個元素,比如:int i;這個i就是一個數據結構,它是一個什麼樣的數據結構,就是一個類型為int的變數,我們可以對它進行加法/減法/乘法/除法/自加等等一系列操作,當然對於單個元素我們對它的數據結構和演算法的研究沒有什麼意義,因為它本來就是原子的,某些具體運算上可能演算法存在比較小的差異;而提升一個層次:就是我們的線性表(一般包含有:順序表/鏈表)那麼我們研究這樣兩種數據結構主要就是要研究它的什麼東西那?一般我們主要研究他們以結構為單位(就是結點)的增加/刪除/修改/檢索(查詢)四個操作(為什麼有這樣的操作,我在下面說到),我們一般把「增加/刪除/修改」都把它稱為更新,對於一個結點,若要進行更新一類的操作比如:刪除,對於順序表來說是使用下標訪問方式,那麼我們在刪除了一個元素後需要將這個元素後的所有元素後的所有元素全部向前移動,這個時間是對於越長的順序表,時間越長的,而對於鏈表,沒有順序的概念,其刪除元素只需要將前一個結點的指針指向被刪除點的下一個結點,將空間使用free()函數進行釋放,還原給操作系統。當執行檢索操作的時候,由於順序表直接使用下標進行隨機訪問,而鏈表需要從頭開始訪問一一匹配才可以得到使用的元素,這個時間也是和鏈表的結點個數成正比的。所以我們每一種數據結構對於不同的演算法會產生不同的效果,各自沒有絕對的好,也沒有絕對的不好,他們都有自己的應用價值和方式;這樣我們就可以在實際的項目開發中,對於內部的演算法時間和空間以及項目所能提供的硬體能力進行綜合評估,以讓自己的演算法能夠更加好。 (在這里只提到了基於數據結構的一個方面就是:速度,其實演算法的要素還應該包括:穩定性、健壯性、正確性、有窮性、可理解性、有輸入和輸出等等) 為什麼要以結點方式進行這些亂七八糟的操作那?首先明確一個概念就是:對於過程化程序設計語言所提供的都是一些基礎第一信息,比如一些關鍵字/保留字/運算符/分界符。而我們需要用程序解決現實生活中的問題,比如我們要程序記錄某公司人員的情況變化,那麼人員這個數據類型,在程序設計語言中是沒有的,那麼我們需要對人員的內部信息定義(不可能完全,只是我們需要那些就定義那些),比如:年齡/性別/姓名/出生日期/民族/工作單位/職稱/職務/工資狀態等,那麼就可以用一些c/c 語言描述了,如年齡我們就可以進行如下定義: int age;/*age變數,表示人員公司人員的年齡*/ 同理進行其他的定義,我們用結構體或類把他們封裝成自定義數據類型或類的形式,這樣用他們定義的就是一個人的對象的了,它內部包含了很多的模板數據了。 我就我個人的經歷估計的代碼量應該10000以內的(我個人的經理:只是建議,從你的第一行代碼開始算,不論程序正確與否,不論那一門語言,作為一個標准程序員需要十萬行的代碼的功底(這個是我在大學二年級感覺有一定時候的大致數據,不一定適合其他人),而十萬行代碼功底一般需要四門基礎遠支撐,若老師沒有教,可以自學一些語言)。

㈧ 什麼是數據結構和演算法

數據結構,data_structure,其中d是數據元素的集合,r是該集合中所有元素之間的關系的有限集合。數據結構則是指相互之間存在一種或多種特定關系的數據元素的集合。通常情況下,精心選擇的數據結構可以帶來更高的運行或者存儲效率。數據結構往往同高效的檢索演算法和索引技術有關。

數據結構是計算機專業學生在大學期間都會學習的一門課程,但是由於課程偏理論,缺乏實際操作的學習體驗,而讓大家產生了一種「數據結構不重要,我只要學習了java/c語言/python同樣能敲代碼」的錯覺,但其實它是一門集技術性、理論性和實踐性於一體的課程。

演算法是某一系列運算步驟,它表達解決某一類計算問題的一般方法,對這類方法的任何一個輸入,它可以按步驟一步一步計算,最終產生一個輸出。

小碼哥的李明傑也說過所有的計算問題,都離不開要計算的對象或者要處理的信息,如何高效的把它們組織起來,就是數據結構關心的問題,所以演算法是離不開數據結構的,這就是數據與演算法。

熱點內容
布丁少兒編程 發布:2024-11-19 09:57:11 瀏覽:97
vb資料庫數組 發布:2024-11-19 09:23:40 瀏覽:827
安卓游戲數據保存在哪裡找 發布:2024-11-19 09:22:02 瀏覽:309
解壓出來的文件亂碼 發布:2024-11-19 09:15:40 瀏覽:939
北航ftp是多少 發布:2024-11-19 09:15:32 瀏覽:821
瀏覽保存密碼如何取消 發布:2024-11-19 09:10:17 瀏覽:89
安卓怎麼關簡訊重復提醒 發布:2024-11-19 09:02:00 瀏覽:635
html與php的區別 發布:2024-11-19 09:00:53 瀏覽:194
晚安密碼多少 發布:2024-11-19 09:00:51 瀏覽:945
易語言腳本模塊 發布:2024-11-19 09:00:44 瀏覽:484
网站地图