更新時間:2022-12-20 12:44:42 來源:動力節點 瀏覽2540次
Java算法與數據結構是什么?動力節點小編來為大家進行介紹。
1.常見數據結構:
Array(數組)、Stack(棧)、Queue(隊列)、LinkedList(鏈表)、Tree(樹)、Hash(哈希表)、Heap(堆)、Graph(圖)
2.各種數據結構總結:
(1)數組:
優點:插入數據快
缺點:查找慢,刪除慢,大小固定,只能存儲單一元素
(2)有序數組:
優點:比無序數組查詢快
缺點:查找慢,刪除慢,大小固定,只能存儲單一元素
(3)棧:
優點:先進后出
缺點:存取很慢
(4)隊列:
優點:先進先出
缺點:存取很慢
(5)鏈表:
優點:插入快,刪除快
缺點:查找很慢
(6)二叉樹:
優點:如果樹是平橫的,查找、刪除、插入都很快
缺點:刪除算法復雜
(7)紅黑樹:
優點:樹總是平衡的,查找、刪除、插入都很快
缺點:算法復雜
(8)2-3-4樹:
優點:樹總是平衡的,類似的樹對磁盤存儲有效,
缺點:算法復雜
(9)哈希表:
優點:如果已知關鍵字則存取極快
缺點:刪除數據慢,不知道關鍵字則存取數據都很慢,對存儲空間使用不充分
(10)堆:
優點:插入數據和刪除數據都快,對最大項數據存取快
缺點:對其它數據項存取慢
(11)圖:
優點:對現實世界建模
缺點:有些算法慢且復雜
1.算法5個特征:
(1)有窮性:對于任意一組合法輸入值,在執行又窮步驟之后一定能結束,即:算法中的每個步驟都能在有限時間內完成。
(2)確定性:在每種情況下所應執行的操作,在算法中都有確切的規定,使算法的執行者或閱讀者都能明確其含義及如何執行。并且在任何條件下,算法都只有一條執行路徑。
(3)可行性:算法中的所有操作都必須足夠基本,都可以通過已經實現的基本操作運算有限次實現之。
(4)有輸入:作為算法加工對象的量值,通常體現在算法當中的一組變量。有些輸入量需要在算法執行的過程中輸入,而有的算法表面上可以沒有輸入,實際上已被嵌入算法之中。
(5)有輸出:它是一組與“輸入”有確定關系的量值,是算法進行信息加工后得到的結果,這種確定關系即為算法功能。
2.算法的設計原則:
(1)正確性:首先,算法應當滿足以特定的“規則說明”方式給出的需求。其次,對算法是否“正確”的理解可以有以下四個層次:
程序語法錯誤。
程序對于幾組輸入數據能夠得出滿足需要的結果。
程序對于精心選擇的、典型、苛刻切帶有刁難性的幾組輸入數據能夠得出滿足要求的結果。
程序對于一切合法的輸入數據都能得到滿足要求的結果。
PS:通常以第 三 層意義的正確性作為衡量一個算法是否合格的標準。
(2)可讀性:算法為了人的閱讀與交流,其次才是計算機執行。因此算法應該易于人的理解;另一方面,晦澀難懂的程序易于隱藏較多的錯誤而難以調試。
(3)健壯性:當輸入的數據非法時,算法應當恰當的做出反應或進行相應處理,而不是產生莫名其妙的輸出結果。并且,處理出錯的方法不應是中斷程序執行,而是應當返回一個表示錯誤或錯誤性質的值,以便在更高的抽象層次上進行處理。
(4)高效率且低存儲量需求:通常算法效率值得是算法執行時間;存儲量是指算法執行過程中所需要的最大存儲空間,兩者都與問題的規模有關。
以上就是關于“Java算法與數據結構的介紹”,大家如果想了解更多相關知識,不妨來關注一下本站的Java數據結構視頻教程,里面的課程內容由淺到深,通俗易懂,很適合沒有基礎的小伙伴學習,希望對大家能夠有所幫助哦。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習