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

2021-03-03 20:45:32 字數 5154 閱讀 1057

1樓:匿名使用者

,(如果說c語言是用來寫程式的,資料結構呢???)?? \n\n有資料,和組織資料的資料結構,程式的行為邏輯才可以確定,程式才可能有實際意義。

\n資料結構是寫程式的基礎。一定要打好基礎。當然也可以在實踐中穩固基礎。

\n\n2,資料結構中的 那些那些樹,網什麼的 這樣有什麼用呢??在程式中有什麼作用呢! \n\n各種資料抽象只是資料的不同組織形式,一切都為了方便程式訪問資料和提高程式效能而使用。

\n各種結構之所以這樣定義,就是為了通過以不同方法組織資料來改善、來提高程式效能和資料訪問速度。 \n在程式中,定義沒有實際價值,真正有價值是那種組織思想和操作方法;但如果沒有定義,就不會有這樣的物件(實際可以是變數、常量等實實在在的資料操作客體),所以最少也得要知道這些結構(起碼是名字;p)。 \n\n3,還有就是怎麼樣才能學好資料結構呢!

(c語言版的資料結構,是不是一定要有堅實的c語言功底呢?)??? \n\n資料結構其實就是組織資料的思想和方法,同樣的資料結構,在不同語言上的應用,其實都是大同小異的。

\n\n資料結構不依賴於語言,不過學習使用它,就要選擇一種語言。學習資料結構是可以和學習語言並行進行的,基本瞭解了一點語言的邏輯,來應用在資料結構上,可以達到互相輔助學習的效果。\n\n2年前我也在學資料結構 學了2個月不知道在學什麼 現在算是明白多了 資料結構是說的一種在程式裡使用資料的技巧,,甚至可以說是藝術~可惜當時沒怎麼學好 因為那時不明白

void print_descending(int x,int y,int z)//

按從大到小順序輸出三個數

//print_descending

什麼是資料結構和演算法?學演算法還需要去了解資料結構嗎?

2樓:匿名使用者

你這理解不完全正確。

因為資料結構不只是記憶體中資料的排列,它是對資料的一種組織方式,就像圖書館要排書一樣,是為了便於操作,同時它本身也整合了對通用操作:比如查詢、比較等的支援。陣列不是一種資料結構,而是一種資料型別。

一個完整的資料結構包括邏輯結構和儲存結構。通常選擇了資料結構,演算法也隨之確定,是資料而不是演算法是系統構造的關鍵因素。

因此在語言實現上,資料結構通常也會包含與之相對應的演算法集合,這些演算法是指基本演算法:查詢、索引、比較等。

資料結構的邏輯結構和硬體是沒有關係的,而其儲存結構受到計算機硬體系統工作方式的影響,通常這點影響在於資料時順序儲存還是離散儲存。演算法的基礎是資料結構。只有指定明確的資料結構,演算法才能設計完成,脫離資料結構,演算法是無法,也不可能成立的。

因為不需要資料的演算法就不是一個有效的計算機演算法,演算法中任何對資料的組織形式都可以被稱之為資料結構。

2.資料結構在程式設計中的地位是極其重要的,是一個程式實現的基礎中的基礎,在此基礎上才能構建演算法。通常而言,你不瞭解什麼高深的演算法,一樣能完成工作,但是如果你不瞭解基本的資料結構,那麼可以說,你根本就不能完成一個任何有實質性內容的程式。

donald ervin knuth教授在其《計算機程式設計藝術》的第一卷《基本演算法》中花費的絕大部分的篇幅去論述資料結構。由此可見資料結構對演算法的重要性。

3樓:匿名使用者

資料結構可以優化資料的存諸,使得資料存諸能夠更省空間,查詢更高效。

有時候資料結構本身就是一種演算法,比如線段樹,splay樹,堆。

而有一些演算法是要建立在資料結構的基礎之上才能夠更高效的。

對於不同的演算法需要採用合適的資料結構。比如最短路徑演算法,對於希疏圖,我們要用連線表來存連。這樣才不能導至大量的空連。而且連的查詢也更高效。

而對於密圖,我們採用連線矩陣來存諸。

4樓:匿名使用者

你可以這樣理解,資料結構你把它理解成excel裡面的製作一張**的表模,比如你做一張工資表,那麼表模肯定你要考慮每一個資料的意義和它們應該放置於哪個位置。而演算法就是你在**內部資料間的關聯運算,可以是邏輯的也可以是數學的。

因此你製作一張工資表,你肯定要先定結構,然後再定演算法。當然你說只學演算法不學結構照樣能做出結構來,但你考慮更高一個層次,如果你這張工資表只是一個公司幾百份**中的一份,你如果不把它的結構搞得很清楚的表達,你其他**要呼叫這張**的資料就無從做到,而你如果用結構來表示,就很清晰了,這就是結構和演算法的不同。

結構是較為巨集觀的思考方式,演算法是微觀的實現,它們之間密不可分。當然在現在軟體開發工程裡面,系統工程師可以分為做結構和做演算法的,但一般做結構的都是更核心的成員,他們懂演算法,但不用做演算法,他們只要把資料結構模型構造好,工程分拆清晰,讓其他的程式設計師按照他們規劃的結構去做細緻的工作就可以了。

5樓:匿名使用者

資料結構與演算法密不可分。

資料結構注重了資料的組織形式。 資料的一定的組織方式已決定了只適用於某此演算法。

演算法尋求在指定資料結構上的最優解, 也就是最有效率的方法。 為此也有此設計特定的資料結構的, 比如紅黑樹就是被髮明出來的。

好的演算法: 儲存空間效率(資料結構)與時間效率(演算法效能)達到一定的平衡, 而非只突出時間效率。 所以一定要同時考慮這兩個方面才能設計出一個好的演算法。

應用中還要考慮特定的環境, 比如嵌入式, 沒有大的記憶體, 這時有些佔用大量的記憶體的一些演算法就不適用了。

另一種角度: 借用c++中stl的概念,

資料結構: 在c++中定義為容器, 比如:vector(陣列) list(連結串列)。。。

而這些容器對於裝入其中的東西並無限制, 比如使用者可定義裝int, 也可以裝char, 還可以裝string資料。

演算法: 在c++中定義也叫演算法, 比如find, 查詢指定的一個元素, 你可在vector容器中查詢 , 也可用在list容器查詢。 但是在不同的容器中查詢效率是不同的, 這是容器本身決定的。

6樓:匿名使用者

呵呵,這兩個都是要學的。。。不學你怎麼做好程式設計

7樓:碼寶寶呀

資料結構就是「多維度」的模版 + 內部與外部的聯絡。 當您定義好資料結構的時候,一個初始的資料模版就被定義出來,然後這個利用這個模版,您可以生成你想要的資料的模樣。 這些資料內部的值可以內在有各種各樣的聯絡,資料與資料直接也有各種個樣的聯絡。

利用資料內部和外部的聯絡的配合,可以幫助人們抽象各種個樣的問題。 常見的資料結構有連結串列,棧, 佇列,陣列等等。

演算法以我的理解就是解決一個問題時需要的一個流程。通常一個演算法能解決一類相似的問題,只要你的程式按照既定演算法的步驟進行,就可以解決此類問題。對學習演算法,我的建議就是把演算法具體成影象,把幾個關鍵的步驟用影象記憶下來。

資料結構和演算法是相輔相成的。資料結構是為演算法服務的,演算法要建立在特定的資料結構之上,因此無法孤立資料結構來講演算法,也無法孤立演算法來講資料結構。所以學演算法就會涉及到資料結構,同樣學資料結構也必須學到演算法。

想知道更多的資料結構與演算法知識嗎?可以去了解一下小碼哥李明傑。

c語言問題: 什麼是演算法?試從日常生活中找3個例子,描述它們的演算法。 詳細點,謝謝!

8樓:東南西北寶貝

c語言中的演算法是指:一系列解決問題的清晰指令,用系統的方法描述解決問題的策略機制。也就是說,能夠對一定規範的輸入,在有限時間內獲得所要求的輸出。通俗說就是解決問題的方法和步驟。

描述演算法的例子:

問題:從上海去到北京。

其中的演算法:做汽車、做飛機、或者徒步。

問題:喝茶。

其中的演算法:先找到茶葉,再燒一壺開水,然後將茶葉放到杯子裡,將開水倒入杯中,等茶葉泡好。

問題:開車。

其中的演算法:首先要開啟車門,駕駛員坐好,插上車鑰匙,發動汽車。

演算法的五個重要的特徵:有窮性(finiteness)、確切性(definiteness)、輸入項(input)、輸出項(output)、可行性(effectiveness)。

演算法的時間複雜度:演算法的時間複雜度是指執行演算法所需要的計算工作量。一般來說,計算機演算法是問題規模n 的函式f(n),演算法的時間複雜度也因此記做。

t(n)=ο(f(n))因此,問題的規模n 越大,演算法執行的時間的增長率與f(n) 的增長率正相關,稱作漸進時間複雜度(asymptotic time ***plexity)。

演算法的空間複雜度:演算法的空間複雜度是指演算法需要消耗的記憶體空間。其計算和表示方法與時間複雜度類似,一般都用複雜度的漸近性來表示。

同時間複雜度相比,空間複雜度的分析要簡單得多。可以從正確性、可讀性、健壯性(容錯性)來分析。

9樓:匿名使用者

演算法就是解決問題的方法

比如你要喝茶就要先找到茶葉,燒一壺開水,然後將茶葉放到杯子裡,然後將開水倒入杯中,然後等一段時間

再比如你要從a地到b地,中間可能有多種汽車換乘方案,是選速度最快的,還是選最省錢的,

還是平衡的,制定換乘方案就是演算法。

10樓:鈊若在夢就在

演算法可以理解為程式為產生這個結果使用的方法也可以理解為解決問題的辦法

要產生一個結果

可以通過很多種不同的方法來產生

同樣解決一個問題

也可以有很多種解決的辦法

這個產生結果或者解決問題的辦法就稱為演算法

不同的解決辦法就是不同的演算法

11樓:匿名使用者

演算法就是解決問題的辦法。。

比如排序演算法

就是 單純的排列順序咯

不同的演算法 執行的效率不同

12樓:匿名使用者

#include "stdio.h"

void main()

什麼是演算法,都什麼,舉個例子,謝謝

13樓:匿名使用者

比如你要算1+2+3+4+5,怎麼算出結果,這個就是演算法

比如演算法一:1加上2,結果加上3,結果加上4.。。。

演算法二:1加上2,加上(3加上4的和),再加上5

14樓:匿名使用者

演算法就是解決問題的具體的方法和步驟,所以具有以下性質:

1、有窮性: 一個演算法版必須權保證執行有限步之後結束(如果步驟無限,問題就無法解決)

2、確切性:步驟必須明確,說清楚做什麼。

3、輸入:即解決問題前我們所掌握的條件。

4、輸出:輸出即我們需要得到的答案。

5、可行性:邏輯不能錯誤,步驟必須有限,必須得到結果。

演算法通俗的講:就是解決問題的方法和步驟。在計算機發明之前便已經存在。只不過在計算機發明後,其應用變得更為廣泛。通過簡單的演算法,利用電腦的計算速度,可以讓問題變得簡單。

學資料結構和演算法之前要先學什麼,學習資料結構需要先學習什麼科目?求指導

不需要其他的了,因為資料結構跟c一樣也是一麼基礎課,學了他是為後期學其他課程作準備的,如編譯原理!數學分析暫時還用不著但是可以鍛鍊思維能力!資料結構裡的內容跟離散數學關係很大,比如圖,等等!必須把離散學好!具備c語言或c 等基本的程式設計知識,其中指標的概念一定要清晰明瞭。最好能學習一些離散數學的知...

資料結構與演算法,哪種語言描述好,資料結構和演算法用什麼語言來學習入手比較好

關於資料結構與演算法的描述問題,現在是使用 c 語言進行描述的為多。因為 c 語言是目內 前比較流行的一種高階程式設計容語言。現在市場上就有售賣 資料結構 c語言版 的教材。該教材中的所有演算法 例如 各種排序演算法 以及查詢演算法 都是使用 c 語言進行描述的。根據我個人的體會就是 至於是學習哪一...

學習資料結構有什麼用,資料結構學習些什麼內容,學習資料結構有什麼意義,有哪些運用

資料結構 是計算機專業的一門必修課,可是很多學生學完以後,覺得專用處不大,還不 資料結構學習些什麼內容,學習資料結構有什麼意義,有哪些運用 資料結構學習的內容可以去。作為一個已經進入公司程式設計師,我來告訴你學習資料結構有什麼用。資料結構是計算機儲存 組織資料的方式。資料結構是指相互之間存在一種或多...