跟我學資料結構之演算法初步概念

2021-07-03 21:06:50 字數 899 閱讀 1272

學完第一篇的概念,不知道大家對資料結構有沒有感覺呢?接下來我們介紹一下和演算法有關的概念。說道演算法,可能大多數同學會感覺很難,的確演算法是一塊硬骨頭,但是學好它有重要的意義。圖靈獎得主,計算機科學家n.wirth(沃斯)提出:

程式 = 演算法 + 資料結構

。所以,作為程式開發人員不僅要懂資料結構,還要和演算法結合才能寫出優秀的程式。

有窮性 (finiteness)

確切性 (definiteness)

輸入項 (input)

輸出項(output)

可行性 (effectiveness)正確性

可讀性健壯性

時間效率高和低儲存量 (最重要)常量階

線性階

#include 

using

namespace

std;

int main()

}

對數階
int

count = 1;

while (count

< n)

由於count每次乘上2後就更接近n,所以有多少個2相乘後≥n,就迴圈多少次,2^x = n, x = log2(n)。所以演算法的時間複雜度為o(logn)

平方階

int i,j;

for (i = 0 ; i

< n ; i ++)

}

外面的迴圈語句執行n + 1 次,迴圈執行n次,同理裡面也執行n次,所以我們說這種情況的時間複雜度為o(n^2)

看了那麼多情況,我們來總結一下各種情況:

跟我學資料結構 線性表的鏈式儲存結構

鏈式儲存定義 為了表示每個資料元素與其直接後繼元素之間的邏輯關係,每個元素除了儲存本身的資訊外,還需要儲存指示其直接後繼的資訊。表頭結點 鍊錶中的第乙個結點,包含指向第乙個資料元素的指標以及鍊錶自身的一些資訊。資料結點 鍊錶中代表資料元素的結點,包含指向下乙個資料元素的指標和資料元素的資訊。尾結點 ...

跟我學資料結構 2 陣列的遍歷 插入和刪除

跟我學資料結構 2 陣列的遍歷 插入和刪除 摘要 產生陣列,遍歷陣列,查詢陣列中的最小值,在指定位置插入和刪除元素。本文仍然是作為學習資料結構的基礎。和執行結果 本課內容比較單純,我們直接上 同學們可以多次執行 觀察結果。code desc this program illustration how...

資料抽取oracle 跟我學 特徵抽取演算法與應用

如果您對資料探勘和資料統計分析感興趣,又對python和r等語言不熟悉,那您可以參考本文的 特徵抽取演算法 示例,在oracle資料庫或者資料倉儲中,利用sql來實現資料探勘和資料統計分析演算法。在資料探勘的過程中,過多的資訊會減低挖掘的有效性。一些資料屬性對於模型的建立和測試並沒有意義而且這些屬性...