计算机二级公共基础知识(一)——数据结构与算法
生活随笔
收集整理的這篇文章主要介紹了
计算机二级公共基础知识(一)——数据结构与算法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 數據結構與算法
- 【1】算法的概念
- 【2】算法的復雜度
- 【3】數據結構
- 【4】邏輯結構和存儲結構
- 【5】線性結構和非線性結構
- 【6】線性表及其順序存儲結構
- 【7】線性鏈表
- 【8】棧
- 【9】隊列
- 【10】樹
- 【11】二叉樹的性質
- 【12】滿二叉樹和完全二叉樹
- 【13】完全二叉樹的性質
- 【14】二叉樹的遍歷
- 【15】順序查找
- 【16】二分查找
- 【17】排序
數據結構與算法
【1】算法的概念
- 算法:指一組有窮的指令集,是解題方案的準確而完整的描述
- 算法的特征:
- 算法的組成要素:算法 = 數據對象運算和操作 + 控制結構
- 算法的基本運算和操作:算術運算、邏輯運算、關系運算、數據傳輸
- 算法的基本控制結構:順序、選擇、循環
- 算法的基本設計方法:引舉法、歸納、遞推、遞歸、減半遞推技術
【2】算法的復雜度
- 算法效率的質量——算法的復雜度:時間復雜度和空間復雜度
時間復雜度和空間復雜度并不相關
【3】數據結構
- 數據:客觀事物的符號表示
- 數據元素:數據元素是數據的基本單位
- 數據對象:性質相同的數據元素的集合
- 數據結構:某一數據對象中,所有數據或成員之間的關系組合的集合
【4】邏輯結構和存儲結構
- 數據的邏輯結構:數據元素之間的關系描述。與數據的存儲無關、面向問題、獨立于計算機
- 數據的存儲結構:也叫物理結構,計算機中的存儲方式,面向計算機
- 邏輯結構可對應多個存儲結構
- 常見的存儲結構:順序、鏈接、索引(不同的存儲結構,處理的效率不同)
【5】線性結構和非線性結構
- 線性結構:有且只有一個根節點;每一個節點最多一個前件和一個后件
- 非線性結構
- 線性結構:棧、隊列、雙向鏈表
- 非線性結構:樹、二叉樹
【6】線性表及其順序存儲結構
- 線性表是由一組數據元素構成、數據元素只取決于自己序號
- 復雜線性表:
- 非線性表的結構特征:
- 線性表的順序存儲結構特特點:
- 順序表的運算:查找、刪除、插入
【7】線性鏈表
- 鏈表是線性表的鏈式存儲結構
- 每一個節點:
- 鏈式存儲結構的存儲空間可以不連續
- 鏈式存儲結構可以用于線性結構也可以用于非線性結構
【8】棧
- 棧:一種特殊的線性表,只允許在表的一端插入和刪除元素(棧頂)
- 棧是一種后進先出線性表
- 棧具有記憶功能
- 棧的基礎運算:
(1)入棧:棧頂插入元素
(2)退棧:棧頂刪除元素
(3)讀棧頂元素:將棧頂元素賦給一個指定的變量,此時指針無變化
【9】隊列
- 隊列:特殊的線性表
(1)隊尾rear:插入元素
(2)隊頭front:刪除元素(front指向隊頭元素的前一個位置)
(3)先進先出
- 隊列的存儲結構:
順序存儲:一維數組
鏈式存儲:線性鏈表
- 隊列的順序存儲結構:一般采用循環隊列
s=0:空隊列
s=1且front=rear:隊滿
- 循環隊列的元素個數:rear - front(若為負,則加上容量)
【10】樹
- 樹:非線性結構,n個節點的集合
- 葉子節點:度為0,最后一層
- 根節點在第一層
【11】二叉樹的性質
- 二叉樹的第K層上:==2^(k-1)==個節點
- 深度為m的二叉樹最多有2^m - 1個節點
- 葉子節點數 = 度為2的節點數 + 1
- n個節點的二叉樹:深度 >=[logn] + 1([logn]代表整數部分)
【12】滿二叉樹和完全二叉樹
- 滿二叉樹:滿的
- 完全二叉樹:只有最后一層上缺少右邊的節點
- 滿二叉樹是完全二叉樹,完全二叉樹不是滿二叉樹
【13】完全二叉樹的性質
- n個節點的完全二叉樹的深度為:等于[logn] + 1
- 完全二叉樹中度為1的節點數目:0或1
【14】二叉樹的遍歷
【15】順序查找
以下的兩種情況只能采用順序查找
(1)如果線性表為無序表,則不管是順序存儲結構還是鏈式存儲結構,只能用順序查找
(2)鏈式存儲結構,只能用順序查找
【16】二分查找
- 二分查找的條件:順序存儲結構+有序表
- 長度為n有序線性表:最壞情況下二分查找需要logn次(最高效)
【17】排序
- 交換排序
| 冒泡排序 | 最壞情況:n(n-1)/2 |
| 快速排序 | 最壞情況:==n(n-1)/2= |
- 插入排序
| 簡單插入排序 | 最壞情況:n(n-1)/2 |
| 希爾排序 | 最壞情況:O(n^1.5) |
- 選擇排序
| 簡單選擇排序 | 最壞情況:n(n-1)/2 |
| 堆排序 | 最壞情況:O(nlogn) |
除了希爾排序外,堆排序時間復雜度最小
總結
以上是生活随笔為你收集整理的计算机二级公共基础知识(一)——数据结构与算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 雷电模拟器7抓包安装证书
- 下一篇: 《创业时,我们在知乎聊什么》- 书摘