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

很感謝大家的關注,我的專欄超過200人了,給予我很大的動力更新下去,反正作為零基礎的小白與大家一起進步是一件非常有意義的事情。至少我是這樣認為的。這期的內容是關於演算法和數據結構的。然後文字說明會比較多一點,希望大家有耐心看完哦。

1.什麼是數據結構?

數據結構是程序存儲,組織數據的方式。一個數據結構是由程序中的數據元素按照某種邏輯關係組織起來的。是若干個數據元素的組合。這段話是我抄書的。

數據結構是程序中處理數據的基本單位,在程序中作為一個整體來使用。按照分類有3種:

  1. 不可分割的單個數據。例如:整數「12」,字元「C」。
  2. 由多個數據構成。例如:你的生日「1994年7月8日5時4分21秒」。由6部分組成,分別是年月日時分秒。
  3. 由多個第一點數據和和第二點數據組合而成。例如:張三,生日:1994年7月8日5時4分21秒。

在許多程序設計當中,數據結構的選擇是一個基本的設計考慮因素(熟能生巧),系統的實現的困難程度和系統構造的質量都嚴重依賴於是否選擇了最優的數據結構。(沒有我你活不下去)。能夠有效的提高運行的效率和節約存儲空間的使用。(終於知道為什麼搞人工智慧為什麼這麼掙錢和競爭激烈,原來優點在這,就是直接決定了程序的優良與否嘛)括弧裡面是我的個人見解,不喜勿噴哈,留點信心我更新下期。

反正就是沒有十全十美的數據結構,每種都有局限性,要根據程序任務的需求來選擇合適的數據結構。(說了等於沒說)。

2.什麼是演算法?

(唉,演算法不就是數據結構,不是的,真的不是的。剛開始我也是這麼想)。

演算法就是解決一個問題的完整地步驟描述,是指完成一個任務準確而完整地步驟描述。

演算法的設計很多時候需要取決於數據結構,而演算法的實現更依賴於採用的存儲結構。(區別!)。

提出一個問題的演算法是一個從抽象到具體的過程。

  1. 分析問題,選擇數據結構,得出初步的解決方法。
  2. 將解決方法合理地拆分,整理成許多步驟。
  3. 為重複的步驟選擇合理的循環變數(我腦海一想到得就是太極~~)
  4. 使用易轉化為程序實現的自然語言簡練地描述演算法(這句話我不理解)。

我覺得,書本上列舉的大多數例子都需要操作的,我現在腦海所有的就是數據結構就是數字0和1之間的排列順序,(10010101010101010101010101010101010101010101010),那演算法是什麼,我的理解就是把順序整理成我所需要的內容或者工具。(000000000000111111111111)

這期就這樣啦,更深奧的我真不懂,不過有問題的話歡迎大家底下留言,我會儘力回答的。如果錯誤之處,不好意思請你見諒啦。

推薦閱讀:

[數據結構]走近Zkw線段樹(一)
數據結構與演算法 - 圖論
何愷明團隊推出Mask^X R-CNN,將實例分割擴展到3000類

TAG:算法与数据结构 |