資料結構與演算法是什麼

2021-09-24 19:40:53 字數 809 閱讀 8905

前言:資料結構一般和演算法說在一起,稱為資料結構與演算法。這個知識非常好理解,但是一些老師每天***的簡直不知所云。所以我就想寫這篇簡單的教程,知識淺薄,請包涵。

什麼是資料結構?

資料結構就是一些有關係的資料的集合,有順序表,鍊錶,棧,佇列,樹,圖。等這幾種結構。

什麼是演算法?

演算法就是解決問題的一種方法,解決乙個問題的演算法有很多,但總有乙個演算法比其他的方式好,要麼節省時間,要麼效率高。例如從1加到100,你當然可以來乙個for迴圈來迴圈100次。你也可以利用高斯的方法(1+100)*50來計算,誰優誰劣一目了然吧。

為什麼要學習資料結構與演算法?

如果你以後希望從事和編寫**有關的工作的話,資料結構與演算法是必備的技術,為什麼?舉個例子。你遇到了乙個專案該怎麼去實現完成?如果你沒有學過資料結構就會想我是用陣列呢還是用if else呢?如果你學過資料結構就會想我是用棧呢還是用二叉樹和圖呢? 這就暴露出第乙個本質:解決問題的方式。  if else 誰都會。

找到解決的方式之後,接下來你該面對的問題是我該怎麼去用**實現。這是乙個很重要的問題,你解決問題的方式就是演算法,為什麼要學習演算法呢?還是以從1加到100為例。同樣乙個問題,

按照高斯同學的演算法,時間複雜度是1,按照for迴圈的演算法,時間複雜度是100.那如果是從1加到一千,一萬,一億呢?人家高斯同學的時間複雜度還是1,而for迴圈的則是一千,一萬,一億.......這就暴露出來第二個本質:解決問題的方式(演算法)的好壞    如果你不介意演算法的好壞那麼人家一台伺服器能夠完成的事情,你需要好幾臺伺服器,這時你的主管就會抓著頭髮說「oh my god」

這就是學習資料結構與演算法的本質了,具體**該怎麼打,下回見。

演算法與資料結構專場 堆排序是什麼鬼?

演算法與資料結構 二叉堆是什麼鬼?假如給你乙個二叉堆,根據二叉堆的特性,你會怎麼使用二叉堆來實現堆排序呢?我們都知道,二叉堆有乙個很特殊的節點 堆頂,堆頂要嘛是所有節點的最大元素,要嘛是最小元素,這主要取決於這個二叉堆是最小堆還是最大堆。今天,我們暫且選擇以最小堆來作為例子。基於堆頂這個特點,我們就...

資料結構與演算法 1 什麼是資料結構

人們利用計算機的目的是解決實際問題.再面對實際問題時,首先要明確所要解決的問題設計到的個體.深入分析個體之間的關係,為其建立乙個數學模型,並分析其基本運算.然後確定恰當的資料結構來表示該模型,設計合適的資料儲存及相關演算法.最後完成具體的程式來解決實際問題.計算機求解問題的核心是演算法設計.而演算法...

資料結構與演算法預熱 線性表是什麼?

先梳理一下線性表的疑問 線性表是什麼?線性表能做什麼?或是 哪些地方用到了線性表?一.線性表是什麼?先來看看定義 線性表是一種最簡單,最基本,也是最常用的一種線性結構 線性結構的特點是資料元素之間存在一種線性關係 它有順序結構儲存和鏈式結構儲存,它的主要基本操作有插入 刪除和查詢等。如果概念有點模糊...