大話數據結構從零學習

數據結構

是相互之間存在的一種或者多種特定關系的數據元素的集合

我們把數據結構分為物理結構和邏輯結構

邏輯結構

  • 集合結構。集合結構。都是平級的類似數學中的集合
  • 線性結構 1對1
  • 樹形結構 1對多
  • 圖形結構 多對多

物理結構

物理結構指的邏輯結構在計算機中的存儲形式

  • 數據元素的存儲形式有2種 1.順序存儲類比棧,數組等 2.鏈式存儲 存儲空間不連續的,類比堆

下面是總結

邏輯結構是面向問題的,而物理結構是面向計算機的,其基本的目的就是把數據和邏輯關系存儲到計算機的內存當中

算法

算法是解決特定問題求解步驟的描述,在計算機中表現為指令的有限的序列。并且每條指令標示一個或者多個操作

算法的五大特性

  • 零個或者多個輸入
  • 至少一個輸出
  • 確定性 每一步都是確定的
  • 有窮性 時間不能太長
  • 可行性 每一步都可以通過執行有限次數完成
  • 正確性

    • 算法沒有錯誤
    • 符合條件的數據沒有錯誤和異常
    • 非法輸入的數據沒有錯誤
    • 刁鉆的數據沒有錯誤
  • 可讀性

  • 健壯性

  • 時間效率高 存儲量低

判斷一個算法效率的時候,函數中的常數和其他次要項常常可以忽略,更應該關注主項(最高階項)的階數

時間復雜度的計法 大O計法

  • 常數階 不管常數是多少,我們都標記為O(1)
  • 線性階 O(N)
  • 對數階
    int count=1; while(count<n){ count *= 2;}
    此時2的n次方為count .n = log2count O(logN)
  • 平方階

沒有特殊說明的話,時間復雜度都是指的最壞的情況

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 回顧 上一篇文章主要對書中的第一章節數據結構的緒論進行了總結和自己的一些理解,包括數據,數據元素,數據項還...
    taobingzhi閱讀 813評論 3 5
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,420評論 25 708
  • ? 最近工作不是很忙,所以經常會上簡書翻翻有沒有好的技術文章。一次偶然點開個人中心,發現自己第一篇文章發布到現...
    硅谷小蝦米閱讀 470評論 0 3
  • 店主白天把燈打開 或遠或近,你拼出比例尺的輪回 搜索關注自己的人 朝鄰居家的建筑瞥了一眼 世界總是喧囂 經過昨天的...
    _山川_閱讀 249評論 0 0
  • R閱讀原文片段 I自我理解 在咨詢過程中要注意了解來訪都核心問題,詢問起因,原因,過程,在過程中采用了哪些方法,以...
    瑩雪_14d1閱讀 190評論 0 0