學資料結構和演算法之前要先學什麼,請問資料結構和演算法二者之間究竟是什麼關係?應該先學哪乙個?

2021-03-22 00:55:23 字數 3114 閱讀 8586

1樓:匿名使用者

學習演算法和資料結構就是把你的程式執行速度變得更快,記憶體需求變得更小,**長度變得更短。正式進入資料結構和演算法前需要了解下c++記憶體的那些事。

在c++中,記憶體分成5個區,他們分別是堆、棧、自由儲存區、全域性/靜態儲存區和常量儲存區。

棧,在執行函式時,函式內區域性變數的儲存單元都可以在棧上建立,函式執行結束時這些儲存單元自動被釋放。棧記憶體分配運算內置於處理器的指令集中,效率很高,但是分配的記憶體容量有限;

堆,就是那些由new分配的記憶體塊,它們的釋放編譯器不去管,由我們的應用程式去控制,一般乙個new就要對應乙個delete。如果程式設計師沒有釋放掉,那麼在程式結束後,作業系統會自動**;

自由儲存區,就是那些由malloc等分配的記憶體塊,它和堆是十分相似的,不過它是用free來結束自己的生命的;

全域性/靜態儲存區,全域性變數和靜態變數被分配到同一塊記憶體中,在以前的c語言中,全域性變數又分為初始化的和未初始化的,在c++裡面沒有這個區分了,他們共同占用同一塊記憶體區;

常量儲存區,這是一塊比較特殊的儲存區,它們裡面存放的是常量,不允許修改。

以上內容摘自《c++記憶體管理技術內幕》,學習資料結構和演算法前可以多多看一下。

應該先學演算法還是資料結構??

2樓:匿名使用者

個人愚見

演算法是解決問題的方法

解決一種問題可以有很多方法(演算法) 所以就存在解決具體問題最優秀的演算法(方法)

而好資料結構能大大的提高演算法的質量

也就是說先學一下資料結構 對一些常用的資料結構有個了結在一些複雜的演算法中就能體現出資料結構的好處很多資料結構書後部分都講演算法

樓上說 演算法往往是針對特定的資料結構 很正確而「往往」這兩字 就說明了複雜演算法往往需要好的資料結構來支援但也有一些演算法不用到書上所說的資料結構

如 對10個整形數排序

用冒泡法呢? 還是用選擇法呢? 這就是演算法的選擇問題好像跟資料結構沒多大聯絡

個人建議 看看資料結構 了解常用和優秀的資料結構再看那些複雜演算法

3樓:匿名使用者

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

4樓:匿名使用者

我想是先學資料結構再學演算法!因為我們是先學的資料結構

因為你只有先了解了資料的結構後才能對它進行操作!

5樓:匿名使用者

乙個演算法往往是針對特定的資料結構的,你說應該先學什麼呢?赫赫

6樓:匿名使用者

當然是先學資料結構啦

7樓:匿名使用者

按課程安排是資料結構在前

請問資料結構和演算法二者之間究竟是什麼關係?應該先學哪乙個?

8樓:匿名使用者

一般來說我覺得先學演算法比較好,但演算法和資料結構都是相輔相成的,要學好演算法要有一定資料結構的基礎,要學資料結構亦要有演算法基礎。但演算法比資料結構更重要一些,因為沒有演算法只有資料結構是沒用的~

9樓:匿名使用者

資料結構+演算法=程式

就是說兩者是同樣重要,c語言的經典演算法都是很難的,資料結構也不好學,不過就是要想編出高質量的程式,資料結構必須學好,所以建議你,不要分開看,最好是一起看,雖然這樣比較難,可是只要選擇了,就不要怕困難,要想學好程式,不下苦工是不行的。

10樓:匿名使用者

資料結構.

其實你在

學資料結構時也已經學演算法了,兩者分不開,試問下,你學資料結構就只學什麼是資料結構,有什麼型別?肯定離不了上機操作,寫程式,所以說不用區分這麼詳細.

如果不知道資料結構,那些演算法中講個結構你不懂,還是得回去看資料結構.

再:turbo c ?介面挺難用的,除錯不方便,建議換個編譯器,大部分;c++編譯器都能編譯c,如dev-cpp,vc..

學資料結構和演算法之前要先學什麼?

11樓:匿名使用者

不需要其他的了,因為資料結構跟c一樣也是一麼基礎課,學了他是為後期學其他課程作準備的,如編譯原理!!!

數學分析暫時還用不著但是可以鍛鍊思維能力!!

資料結構裡的內容跟離散數學關係很大,比如圖,等等!!

必須把離散學好!!

12樓:匿名使用者

具備c語言或c++等基本的程式設計知識,其中指標的概念一定要清晰明了。

最好能學習一些離散數學的知識。

對計算機的工作原理有一定的認識,主要是堆疊、記憶體管理的一些知識。

資料結構和演算法 先學哪個比較好

13樓:匿名使用者

先資料結構,後演算法。因為演算法設計要求盡可能提高時空效率,而這就要通過資料結構來實現,所以兩者有先後之分

14樓:匿名使用者

一般大學可能會同時學,我建議先資料結構再演算法,資料結構相比較演算法來說其實簡單一點,而且演算法是需要一定資料結構支援的

15樓:碼寶寶呀

演算法是解決bai問題的方法,du解決一種問題可以有很多zhi方法(

dao演算法),所以就存內在解決具體問題容

最優秀的演算法(方法),而好的資料結構能大大的提高演算法的質量,也就是說先學一下資料結構,對一些常用的資料結構有了大概了解之後,再做一些複雜的演算法,這時候就能體現出資料結構的好處。

很多資料結構書後部分都在講演算法,演算法往往是針對特定的資料結構,而「往往」這兩字,就說明了複雜演算法往往需要好的資料結構來支援,但也有一些演算法不用到書上所說的資料結構。如:對10個整形數排序用冒泡法還是用選擇法?

這就是演算法的選擇問題,好像跟資料結構沒多大聯絡,如果你還是不知道如何做決定,或者想知道更多關於資料結構與演算法的,可以去找小碼哥李明杰了解一下,或許能幫助到你。

我的建議是先看看資料結構,了解常用和優秀的資料結構,再去學那些複雜的演算法,由淺入深,先打好基礎,再去學難的。

C語言資料結構演算法和C 資料結構演算法有什麼區別嗎??進來看看

你就直接學c 也應該要把c語言搞清楚,c語言的 寫起來要比c 繁瑣一些,不過學習的時候也理解更深刻。不用換,演算法 資料結構是程式設計的 核心,無論什麼語言 所用到的演算法 資料結構是內 一樣的容 唯一的影響可能是書裡一些c語言的 你可能不太懂 會對你的學習有一定的影響,不過影響不大 c 和c語言 ...

作業系統和資料結構,學作業系統之前必須先學資料結構嗎兩者關係有多大

我也bai是計算機專業的,我們du 學的是windows。不過 操zhi作系統 不是你想象的dao那樣學哪個內系統容,而是教 你作業系統的理論知識,比如說cpu怎樣處理任務,磁碟的工作原理等。我們的資料結構是偽c語言的。不過沒什麼關係,這門課主要講的是演算法,不是具體的那種語言。你掌握了解決乙個問題...

資料結構是什麼舉個例子,學習資料結構和演算法在什麼地方運用,一直不解求舉個例子

資料bai結構是在整個計算機du 科學與技術領zhi 域上廣泛被使用 dao的術語。它用來反映一版 個資料的內部構成權,即乙個數 據由那些成分資料構成,以什麼方式構成,呈什麼結構。資料結構有邏輯上的資料結構和物理上的資料結構之分。邏輯上的資料結構反映成分資料之間的邏輯關係,而物理上的資料結構反映成分...