糯米文學吧

位置:首頁 > 計算機 > java語言

JAVA語言常用的算法和數據結構有哪些

java語言1.86W

“數據結構”是計算機學科各個專業的一門重要的專業基礎課程。很多人對於數據結構的應用,常見的數據結構和算法沒有全面的認知和理解,本文為大家整理了一些實踐中最常用的算法和機構,供大家參考:

JAVA語言常用的算法和數據結構有哪些

  在學習瞭解這些數據結構和算法之前,引用一位前輩的話:

“我們不需要你能不參考任何資料,實現紅黑樹;我們需要的是你能在實踐當中,選擇恰當的數據結構完成程序開發;在必要的時候,能在已有的數據結構基礎上進行適當改進,滿足工程需要。但要做到這一點,你需要掌握基礎的算法和數據結構,你需要理解並應用一些高級數據結構和算法的思想。因此,在程序員這條道路上,你要想走得更遠,你需要活用各種數據結構,你需要吸收知名算法的一些思想,而不是死記硬背算法本身。”

那麼,工程實踐當中,最常用的算法和數據結構有哪些?

以下是Google工程師Arjun Nayini在Quora給出的`答案,得到了絕大多數人的贊同。

  最常用的算法

1.圖搜索算法(BFS,DFS)

2.排序算法

3.通用的動態規劃算法

4.匹配算法和網絡流算法

5.正則表達式和字符串匹配算法

  最常用的數據結構

1樹結構特別重要

結構

結構

ks/Queues結構

s樹

其他一些相對比較常用的數據算法還有:貪心算法、Prim’s / Kruskal’s算法、Dijkstra’s最短路徑算法等等。

  怎麼樣才能活用各種數據結構?

你能很清楚的知道什麼時候用hash表,什麼時候用堆或者紅黑色?在什麼應用場景下,能用紅黑色來代替hash表麼?要做到這些,你需要理解紅黑樹、堆、hash表各有什麼特性,彼此優缺點等,否則你不可能知道什麼時候該用什麼數據結構。

  常言道:

程序=算法+數據結構

程序≈數據結構