所謂的基本演算法應該是指:
一、排序演算法
1、有簡單排序(包括氣泡排序、插入排序、選擇排序)
2、快速排序,很常見的
3、堆排序,
4、歸併排序,最穩定的,即沒有太差的情況
二、搜尋演算法
最基礎的有二分搜尋演算法,最常見的搜尋演算法,前提是序列已經有序
還有深度優先和廣度有限搜尋;及使用剪枝,A*,hash表等方法對其進行最佳化。
三、當然,對於基本資料結構,棧,佇列,樹。都有一些基本的操作
例如,棧的pop,push,佇列的取隊頭,如隊;以及這些資料結構的具體實現,使用連續的儲存空間(陣列),還是使用連結串列,兩種具體儲存方法下操作方式的具體實現也不一樣。
還有樹的操作,如先序遍歷,中序遍歷,後續遍歷。
當然,這些只是一些基本的針對資料結構的演算法。
而基本演算法的思想應該有:
1、回溯
2、遞迴
3、貪心
4、動態規劃
5、分治
有些資料結構教材沒有涉及基礎演算法,lz可以另外找一些基礎演算法書看一下。有興趣的可以上oj做題,呵呵。演算法真的要學起來那是挺費勁。
所謂的基本演算法應該是指:
一、排序演算法
1、有簡單排序(包括氣泡排序、插入排序、選擇排序)
2、快速排序,很常見的
3、堆排序,
4、歸併排序,最穩定的,即沒有太差的情況
二、搜尋演算法
最基礎的有二分搜尋演算法,最常見的搜尋演算法,前提是序列已經有序
還有深度優先和廣度有限搜尋;及使用剪枝,A*,hash表等方法對其進行最佳化。
三、當然,對於基本資料結構,棧,佇列,樹。都有一些基本的操作
例如,棧的pop,push,佇列的取隊頭,如隊;以及這些資料結構的具體實現,使用連續的儲存空間(陣列),還是使用連結串列,兩種具體儲存方法下操作方式的具體實現也不一樣。
還有樹的操作,如先序遍歷,中序遍歷,後續遍歷。
當然,這些只是一些基本的針對資料結構的演算法。
而基本演算法的思想應該有:
1、回溯
2、遞迴
3、貪心
4、動態規劃
5、分治
有些資料結構教材沒有涉及基礎演算法,lz可以另外找一些基礎演算法書看一下。有興趣的可以上oj做題,呵呵。演算法真的要學起來那是挺費勁。