java數據結構和算法

數據結構和算法內容介紹

字符串的匹配問題:

有一個字符串str1="硅硅谷 尚硅谷你尚硅 尚硅谷你尚硅谷你尚硅你好" 和一個子中 str2="尚硅谷你尚硅你"

現在要判斷str1是否含有str2 如果存在就返回第一次出現的位置,如果沒有,則返回-1

要求用最快的速度來匹配

你的思路是什麼?

    1暴力匹配

    2 KMP算法 部分匹配表

漢諾塔遊戲

    請完成漢諾塔的代碼:要求1)將A塔所有c塔。並且規定,在2)小圓盤不能放在圓盤,3)在三根柱子一次只能移動一個圓盤

八皇后問題

     是一個古老而著名的問題,在8*8的國際象棋上擺放8個皇后,使其不能互相攻擊,任意兩個皇后都不能同一行,同一列或同一斜線上,問有多少種擺法。

分治算法

馬踏棋盤算法介紹和遊戲演示

將馬隨機放在國際象棋8*8 棋盤的某個方格中,馬走日字進行移動,要求每個方格只進入一次,走遍盤上全部64個方格。

會使用圖的深度優化遍歷算法+貪心算法優化

數據結構和算法的重要性

一般來講,程序會使用內存計算框架和緩存技術來優化程序,再深入的思考一下,這些計算框架和緩存技術,

 

常見的數據結構

     單鏈表數據結構

     稀疏數據

     循環鏈表

     單向環形鏈表

修路問題=》最小生成樹(加權值)【數據結構】+普利姆算法

最短路徑問題=》圖+弗洛伊德算法

漢諾塔=>分支算法

八皇后問題=》回溯法

線性問題和非線性問題

數據結構包括:線性結構和非線性問題

線性問題:

     線性問題作爲最常用數據,其特點是數據元素之間存在一對一的線性關係

    線性問題有兩種不同的存儲結構,即順序存儲結構(數組) 和 鏈式存儲結構,順序存儲的線性表稱爲順序表,順序表的存儲元素是連續的。

  鏈式存儲線性表稱爲鏈表,鏈表中存儲元素不一定是連續的,元素節點中存放數據元素以及相鄰元素地址信息

 線性結構常見的有:數組,隊列,鏈表和棧,

非線性結構:二維數組,多維數組,廣義表,樹結構,圖結構

稀疏

     

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章