”“”
Java#2中的算法和數據結構(+訪談問題)
嘗試數據結構,三元搜索樹,數據壓縮,基礎搜索和分類算法
在本課程中,我們將探討數據結構和算法的概念。實施將在Java中進行,但基本原理可以應用於其他編程語言,例如C ++或Python。該課程的總持續時間約為12小時。為了深入了解,我建議您自己練習這些數據結構的實施。
第1節 – 嘗試:前綴樹
在本節中,我們將加深前綴樹的基本概念,也稱為嘗試。我們將解決諸如插入,訂購和自動完成之類的操作。此外,我們將探索較長的常見前綴問題和網絡前綴應用程序,特別是IP路由。
第2節 – 三元搜索樹
根據對嘗試的知識,我們將討論嘗試的局限性並介紹三元搜索樹。我們將探索基本的插入和恢復操作,並檢查其在IP路由和Boggle遊戲中的應用程序。
第3節 – 子字符串搜索算法
本節重點介紹基因搜索算法。我們將討論搜索蠻力,底弦Z搜索算法,Rabin-karp算法和哈希的搜索,以及Knuth-Horris-Prat substring搜索算法(KMP)。
第4節 – 字符串
在本節中,我們將探索有關Java編程的字符串。主題包括字符串池,前綴和後綴,較長的常見前綴問題,最長的重複子弦問題以及後綴樹和後綴陣列。
第5節 – 訂購算法
在這裡,我們將陷入基本排序算法,例如氣泡排序,選擇排序,插入排序,外殼排序,QuickSort和Merge Sort。我們還將討論基於比較的和非共同的方法,以及字符串排序算法(例如桶形排序和radix排序)。
第6節 – 數據壓縮算法
本節介紹數據壓縮算法。我們將解決數據壓縮概念,包括運行長度編碼,霍夫曼編碼以及LZW壓縮和減壓。
第7節 – 算法分析
最後一部分著重於算法的分析。我們將學習如何測量算法的執行時間,並使用Big O(Ordo),Bigω(Omega)和Bigθ(Theta)表示法分析其複雜性。我們還將利用複雜性類別,例如多項式(P)和非確定性多項式(NP)算法,並討論執行時間的各種複雜性,例如(1),(log)和(n)。
在整個課程中,我們將討論這些概念的真實應用。例如,現代搜索引擎廣泛使用前綴樹,允許自動完成等功能。訂購算法對於有效組織數據至關重要,數據壓縮在減少文件大小中起著至關重要的作用。
感謝您參加該課程,我們將一起開始這一學習旅程!
您將學到什麼
- 了解算法和數據結構的基礎
- 開發適合您特定需求的算法
- 檢測未達到的代碼摘錄
- 了解數據壓縮技術
- 了解各種服務Algorthses
- 獲取有關嘗試和終端搜索樹的知識
- 在Java中探索字符串和字符串構成器