數據結構與算法是信息技術的核心基礎。掌握好這些基本知識,才能更好的使用信息技術,進而能設計好的軟件。學習數據結構與算法可從如下思維導圖開始:
數據結構與算法概述
- 邏輯結構:數據的基本組成,一般可分為線性還是非線性。線性有明確的開頭和結構,其元素有清晰的前后順序關系。
- 存儲結構:結合實際存放數據的計算機存儲空間來看??梢苑譃轫樞?、鏈式、散列、索引等結構。
- 基本運算:要了解數據解耦的創(chuàng)建、清楚、元素CRUD,統(tǒng)計和復雜度評估
- 算法詳細:要特別掌握的兩類算法就是遞歸與排序。遞歸的應用可簡化程序設計,排序則是數據結構中不可缺少的組成部分。
數據結構
常見的數據結構有如下這些,在日常開發(fā)中常用。通常能夠找到第三方庫,學習時可自己動手寫一個,然后與熱門的流行第三方庫對比,能有更好收獲。如下分別介紹:
- 棧
- 隊列
- 鏈表
鏈表
單向鏈表
雙向鏈表
單向循環(huán)鏈表
雙向循環(huán)鏈表
- 數組
- 樹
- 堆
- 散列表
- 紅黑樹
- 圖
排序算法
數據結構要支持快速元素的查找、修改、增加與刪除,都需要排序。排序是最重要的算法。排序的目的是將無序變成有序。算法有很多,如下面介紹
排序
- 冒泡
冒泡排序
- 選擇
選擇排序
- 插入
插入排序
- 希爾
- 歸并
步驟一:拆分
步驟二:分別排序
步驟三:合并
- 快速
- 堆
初始化
第二步:轉換為最大堆:葉子節(jié)點小于根節(jié)點
第三步:構建Max Heap
將根節(jié)點放到最后,并剔除,再進行第二步
- 計數
- 桶
- 基數