一、演算法的五⼤特性
輸⼊: 演算法具有0個或多個輸⼊
輸出: 演算法⾄少有1個或多個輸出
有窮性: 演算法在有限的步驟之後會⾃動結束⽽不會⽆限迴圈,並且每⼀個 步驟可以在可接受的時間內完成
確定性:演算法中的每⼀步都有確定的含義,不會出現⼆義性
可⾏性:演算法的每⼀步都是可⾏的,也就是說每⼀步都能夠執⾏有限的 次數完成
二、演算法效率衡量
最優時間複雜度:演算法完成⼯作最少需要多少基本操作
最壞時間複雜度:演算法完成⼯作最多需要多少基本操作
平均時間複雜度:演算法完成⼯作平均需要多少基本操作
基本操作,即只有常數項,認為其時間複雜度為o(1)
順序結構,時間複雜度按加法進⾏計算
迴圈結構,時間複雜度按乘法進⾏計算
分⽀結構,時間複雜度取最⼤值
三、分類
順序表
2. 鍊錶
說明
①順序表中資料元素的物理儲存位址是連續的
②鍊錶中資料元素的物理儲存位址是不連續的,每⼀個節點(資料儲存單元)⾥存放下⼀個 節點的位置資訊(即位址)。
三、順序表中元素儲存區擴充和替換
儲存區替換
儲存區擴充
資料結構基礎知識
時間複雜度和空間複雜度 同一問題可用不同演算法解決,而乙個演算法的質量優劣將影響到演算法乃至程式的效率。演算法分析的目的在於選擇合適演算法和改進演算法。乙個演算法的評價主要從時間複雜度和空間複雜度來考慮。1 時間複雜度 1 時間頻度 乙個演算法執行所耗費的時間,從理論上是不能算出來的,必須上機執行測...
資料結構基礎知識
一種資料的邏輯結根據需要可以表示成多種儲存結構,常用的儲存結構有順序儲存 鏈結儲存 索引儲存等,採用不同的資料結構,其資料處理的效率是不同的。線性表是一種常用的資料結構。在實際應用中,線性表都是以棧 佇列 字串 陣列等特殊線性表的形式來使用的。線性表是一種線性結構。線性表有順序儲存結構和鏈式儲存結構...
資料結構基礎知識
簡單的說,資料結構是一門研究非數值計算的程式設計問題中計算機的操作物件以及它們之間的關係和操作等的學科。描述一類非數值計算問題的數學模型不再是數學方程,而是諸如表 樹和圖之類的資料結構。資料結構 的研究不僅涉及到計算機硬體 特別是編碼理論 儲存裝置和訪問方法等 的研究範圍,而且和計算機軟體的研究有著...