數據結構與算法是什麼

  前言:數據結構通常和算法說在一塊兒,稱爲數據結構與算法。這個知識很是好理解,可是一些老師天天XXX的簡直不知所云。因此我就想寫這篇簡單的教程,知識淺薄,請包涵。算法

  什麼是數據結構?數組

  數據結構就是一些有關係的數據的集合,有順序表,鏈表,棧,隊列,樹,圖。等這幾種結構。服務器

  什麼是算法?數據結構

  算法就是解決問題的一種方法,解決一個問題的算法有不少,但總有一個算法比其餘的方式好,要麼節省時間,要麼效率高。例如從1加到100,你固然能夠來一個for循環來循環100次。你也能夠利用高斯的方法(1+100)*50來計算,誰優誰劣一目瞭然吧。學習

  爲何要學習數據結構與算法?spa

  若是你之後但願從事和編寫代碼有關的工做的話,數據結構與算法是必備的技術,爲何?舉個例子。你遇到了一個項目該怎麼去實現完成?若是你沒有學過數據結構就會想我是用數組呢仍是用if else呢?若是你學過數據結構就會想我是用棧呢仍是用二叉樹和圖呢? 這就暴露出第一個本質:解決問題的方式。  if else 誰都會。教程

  找到解決的方式以後,接下來你該面對的問題是我該怎麼去用代碼實現。這是一個很重要的問題,你解決問題的方式就是算法,爲何要學習算法呢?仍是以從1加到100爲例。一樣一個問題,隊列

按照高斯同窗的算法,時間複雜度是1,按照for循環的算法,時間複雜度是100.那若是是從1加到一千,一萬,一億呢?人家高斯同窗的時間複雜度仍是1,而for循環的則是一千,一萬,一億.......這就暴露出來第二個本質:解決問題的方式(算法)的好壞    若是你不介意算法的好壞那麼人家一臺服務器可以完成的事情,你須要好幾臺服務器,這時你的主管就會抓着頭髮說「oh my God」for循環

 

  這就是學習數據結構與算法的本質了,具體代碼該怎麼打,下回見。效率

相關文章
相關標籤/搜索