數(shù)據(jù)元素相互之間的關(guān)系稱為結(jié)構(gòu)。有四類基本結(jié)構(gòu):集合、線性結(jié)構(gòu)、樹形結(jié)構(gòu)、圖狀結(jié)構(gòu); 所謂的基本算法應(yīng)該是指:
一、排序算法 1、有簡(jiǎn)單排序(包括冒泡排序、插入排序、選擇排序) 2、快速排序,很常見的 3、堆排序, 4、歸并排序,最穩(wěn)定的,即沒(méi)有太差的情況 二、搜索算法 最基礎(chǔ)的有二分搜索算法,最常見的搜索算法,前提是序列已經(jīng)有序 還有深度優(yōu)先和廣度有限搜索;及使用剪枝,A*,hash表等方法對(duì)其進(jìn)行優(yōu)化。 三、當(dāng)然,對(duì)于基本數(shù)據(jù)結(jié)構(gòu),棧,隊(duì)列,樹。都有一些基本的操作 例如,棧的pop,push,隊(duì)列的取隊(duì)頭,如隊(duì);以及這些數(shù)據(jù)結(jié)構(gòu)的具體實(shí)現(xiàn),使用連續(xù)的存儲(chǔ)空間(數(shù)組),還是使用鏈表,兩種具體存儲(chǔ)方法下操作方式的具體實(shí)現(xiàn)也不一樣。 還有樹的操作,如先序遍歷,中序遍歷,后續(xù)遍歷。 當(dāng)然,這些只是一些基本的針對(duì)數(shù)據(jù)結(jié)構(gòu)的算法。 而基本算法的思想應(yīng)該有: 1、回溯 2、遞歸 3、貪心 4、動(dòng)態(tài)規(guī)劃 5、分治 有些數(shù)據(jù)結(jié)構(gòu)教材沒(méi)有涉及基礎(chǔ)算法,lz可以另外找一些基礎(chǔ)算法書看一下。有興趣的可以上oj做題,呵呵。算法真的要學(xué)起來(lái)那是挺費(fèi)勁。 |
|