一、數(shù)據(jù)結構和算法淺析隨記

數(shù)據(jù)結構

-是計算機存儲、組織數(shù)據(jù)的方式。是算法的基礎。

算法

-是特定問題求解步驟的描述,計算機指令的集合

區(qū)別

數(shù)據(jù)結構只是靜態(tài)的描述了數(shù)據(jù)元素之間的關系,高效的程序需要在數(shù)據(jù)結構的基礎上設計和選擇算法 。
-算法是為了解決實際問題而設計的
-數(shù)據(jù)結構是算法需要處理問題的問題載體。
-程序核心=數(shù)據(jù)結構+算法

算法分類

1.分治法:有明確的執(zhí)行方式。----常用算法,高頻
-拆分目標,執(zhí)行小目標,合并
2.最短路徑法:有明確的目的,找尋有效的執(zhí)行方式。----多用于游戲
3.貪婪(貪心)算法:沒有明確的目標,沒有明確的執(zhí)行方式。分析當前環(huán)境,找尋目標,有效執(zhí)行方式。----多用于人工智能,機器學習之類

算法五大特性

1.輸入:0或多個輸入。
2.輸出:至少有一個或者多個輸出。
3.有窮性:算法在執(zhí)行有限步驟后,自動結束而不會無限循環(huán),且每一步在可接收時間內(nèi)完成。
4.確定性:算法的每一步驟都有明確含義,不會出現(xiàn)二義性。
5.可行性:算法的每一步都必須是可行的。即,每一步都能通過執(zhí)行有限次數(shù)完成。

數(shù)據(jù)結構分類

邏輯結構

1.幾何結構:元素和元素之間沒有關聯(lián)關系。如:mao、不定參、枚舉。。。
2.線性結構:元素和元素之間1:1,。如,數(shù)組,切片,鏈表
3.樹形結構:元素和元素是一對多的關系。如:二叉樹,多叉樹
4.圖形結構:元素和元素是多對多的關系。

物理結構(存儲結構)

1.線性存儲:數(shù)據(jù)元素存放在連續(xù)的內(nèi)存單元中。查詢效率高。插入、刪除效率低。
2.鏈式存儲:數(shù)據(jù)元素散亂地存放在內(nèi)存單元中,可通過指針找到順序。插入、刪除效率高,查詢效率低。

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容