資料演算法 資料結構與演算法

2021-10-14 16:13:13 字數 1041 閱讀 5884

資料結構和演算法的意義?

資料結構是資料的組織方式,演算法是對資料的處理方式,合理的資料結構和演算法,能夠保證程式高效的執行。

演算法的五大特性

輸入:演算法具有0個或多個輸入

輸出:演算法具有1個或多個輸出

確定性:演算法每一步有確定的含義,不能有二義性

可行性:演算法有限次完成

演算法的評價方式?

演算法的複雜度一般採用大o記法表示,評估演算法的好壞往往分析演算法的最壞情況下的時間複雜度、空間複雜度。

時間複雜度計算:時間複雜度只表示程式最多執行次數,只標識量級,捨棄係數和次要項。

時間複雜度量級:(1) < o(logn) < o(n) < o(nlogn) < o(n2) < o(n3) < o(2n) < o(n!) < o(nn)

演算法的執行時間計算?

python:採用time模組計算時間

import time

dt =

start = time.time()

print("cost time is ".format(time.time() - start))

python:採用timeit模組計算時間

import timeit

dt =

c++:採用time.h計算時間

#includeclock_t start = clock();

for (int i = 0; i < 5000; i++)

}clock_t end = clock();

cout << double(end - start) <

常用的資料結構有:順序表、鍊錶、棧、佇列、樹、

常用演算法:排序演算法、查詢演算法

演算法(資料結構)

空間不夠儲存 給40億個不重複的unsigned int的整數,沒排過序的,然後再給乙個數,如何快速判斷這個數是否在那40億個數當中 40億個數空間儲存的問題 利用對映 分析 unsigned 範圍是2 32 40億大約大約4g個數不到,常規方法肯定是不行的 我們你可以利用 伴隨陣列 那種思想利用記...

演算法 資料結構

演算法是程式的核心,演算法的好壞直接決定了程式的好壞 基礎的幾種演算法 二分查詢 氣泡排序 插入排序 選擇排序 快速排序 二分查詢 假設資料是按公升序排序的,對於給定值x,從序列的中間位置開始比較,如果當前位置值等於x,則查詢成功 若x小於當前位置值,則在數列的前半段中查詢 若x大於當前位置值則在數...

資料結構與演算法 陣列

陣列是一種線性表資料結構。它用一組連續的記憶體空間,來儲存一組具有相同型別的資料。其中有幾個重要的概念 非線性表 連續的記憶體空間 儲存相同型別的資料 如圖所示,這是乙個長度為5的int陣列arr,我們假設起始的記憶體位址為1000,那麼第乙個元素的記憶體位址範圍就是 1000 1003,這是因為乙...