算法(Algorithm) 是對某一個或者某一類問題的解決方案的描述,根據問題的輸入,在有限的計算時間里輸出預期的結果。不同的算法解決問題所需的時間和空間可能會不同,通常用時間復雜度和空間復雜度來評估算法的優劣。
算法5個特征:
1,有窮性。算法必須在執行有限個操作后終止。
2,確切性。算法的每一個操作必須有明確的定義。
3,輸入項。算法有零個或多個輸入,描述算法的初始狀態。
4,輸出項。算法有一個或多個輸出,沒有輸出的算法我們認為是沒有意義的。
5,可行性。算法的每個計算操作都可以在有限時間內完成。
數據結構和算法之間有什么關系呢?
數據結構描述了數據元素之間的邏輯關系,算法描述了數據元素的操作步驟,數據結構和算法組成了程序世界。數據結構和算法之間是不可分割的關系,數據結構是程序的基礎,算法將數據互相聯系起來,形成一套能解決具體問題的方案。
在解決問題時,一般我們會優先確定數據結構,然后再來完善算法,有時也會反過來,根據算法來選擇合適的數據結構。選擇一個合適的數據結構,可以降低算法的算雜度,提高算法的效率。