本倉(cāng)庫(kù)是我積累的一些常見算法以及人工智能方面的算法
該倉(cāng)庫(kù)會(huì)不斷更新,也歡迎您一同貢獻(xiàn)逗威,或提出您的反饋惨缆!
如果該倉(cāng)庫(kù)幫助到了您,或?qū)λ信d趣剂桥,可通過(guò)Star + Watch表示鼓勵(lì)
倉(cāng)庫(kù)地址:https://github.com/yub1ng/Algorithm
個(gè)人博客地址:http://qiyubing.cn
目錄
智能算法
算法名 | 描述 | 語(yǔ)言 | 文件 |
---|---|---|---|
極大極小值算法 | 利用極大極小值算法實(shí)現(xiàn)的井字棋對(duì)弈 | Python3 | minimax.py |
排序算法
算法名 | 描述 | 語(yǔ)言 | 文件 |
---|---|---|---|
冒泡排序 | Python3 | bubble_sort.py | |
選擇排序 | Python3 | selection_sort.py |
搜索算法
算法名 | 描述 | 語(yǔ)言 | 文件 |
---|---|---|---|
寬度優(yōu)先搜索算法 | 利用open表與closed表實(shí)現(xiàn) | Python3 | bfs.py |
圖算法
算法名 | 描述 | 語(yǔ)言 | 文件 |
---|---|---|---|
旅行商問(wèn)題 | 送貨問(wèn)題 | Java | Tsp.java |
最短路徑 | Dijkstra法求解最短路徑 | Java | Dijkstra.java |
數(shù)值計(jì)算
算法名 | 描述 | 語(yǔ)言 | 文件 |
---|---|---|---|
方程求根 | 二分法和牛頓法求解方程的根 | Java | SolvingEquation.java |
矩陣方程 | 求解矩陣方程 | Java | MatrixEquation.java |
數(shù)據(jù)結(jié)構(gòu)
算法名 | 描述 | 語(yǔ)言 | 文件 |
---|---|---|---|
無(wú)向圖 | 鄰接表實(shí)現(xiàn) | C | UDG.c |
二叉樹 | 鏈?zhǔn)綄?shí)現(xiàn) | C | BiTree.c |
鏈表 | C | LinkList.c | |
二分查找 | 構(gòu)造搜索樹并使用二分查找 | C | BinarySearch.c |
選擇排序 | 鏈表實(shí)現(xiàn) | C | SelectSort.c |
規(guī)劃調(diào)度
算法名 | 描述 | 語(yǔ)言 | 文件 |
---|---|---|---|
最小延遲調(diào)度 | 貪心法求解 | Java | MinDelaySchedule.java |
01背包 | 貪心法求解 | Java | OneZeroKnapsack.java |
基礎(chǔ)背包 | 根據(jù)利潤(rùn)/重量得到的權(quán)重忠烛,冒泡排序后裝入背包 | Java | KnapsackDemo.java |
其他
算法名 | 描述 | 語(yǔ)言 | 文件 | |||||||
---|---|---|---|---|---|---|---|---|---|---|
漢諾塔 | Python3 | hanoi_tower.py | ||||||||
俄羅斯方塊 | 通過(guò)判斷下落阻塞和觸底來(lái)模擬俄羅斯方塊 | Java | Tetris.java | |||||||
單詞統(tǒng)計(jì) | Java | WordStatistics.java | ||||||||
最大子段和 | 分治法求解最大子段和 | Java | MaximumIntervalSum1.java | |||||||
最大子段和 | 動(dòng)態(tài)規(guī)劃求解最大子段和 | Java | MaximumIntervalSum2.java | |||||||
斐波那契 | 生成斐波那契數(shù)列 | Java | Fibonacci.java | |||||||
格雷碼 | 生成格雷碼 | Java | GrayCode.java | |||||||
漢諾塔 | Java | HanoiTowerDemo.java |