/Way-to-Algorithm

A basic algorithm tutorial and example code book

Primary LanguageC++

#

Way to Algorithm

========================================

目录结构

  • Chapter-1   Sort   排序
       InsertSort   插入排序
       BubbleSort   冒泡排序
       QuickSort   快速排序
       MergeSort   合并排序
  • Chapter-2   Search   搜索
       AdvancedSearchAlgorithmIntroduction   高级搜索算法介绍
       BinarySearch   二分查找法
       BruteForce   暴力枚举
       DepthFirstSearch   深度优先搜索
       BreadthFirstSearch   广度优先搜索
       BidirectionBreadthSearch   双向优先搜索
       AStarHeuristicSearch   A星启发式搜索
       DancingLinks   舞蹈链
  • Chapter-3   DataStructure   数据结构
       ClassicDataStructureIntroduction   经典数据结构介绍
       HashTable   哈希表
       DisjointSet   并查集
       BinaryIndexTree   树状数组
       SegmentTree   线段树
       LeftistTree   左偏树
       PrefixTree   前缀树
       SuffixTree   后缀树
       AVLTree   平衡二叉树
       RedBlackTree   红黑树
  • Chapter-4   DynamicProgramming   动态规划
       DynamicProgrammingIntroduction   动态规划介绍
       (1) LinearDynamic   线性动态规划
         LongestCommonSubsequence   最长公共子序列
         LongestIncreasingSubsequence   最长递增子序列
         LongestIncreasingSubsequenceExtension   最长递增子序列扩展
         BidirectionSubsequence   双向子序列
       (2) Pack   背包问题
         01Pack   01背包
         01PackPath   01背包路径
         CompletePack   完全背包
         MultiplePack   多重背包
         TwoDimensionPack   二维背包
         PacketPack   分组背包
         GenericItem   泛化物品
         DependentPack   依赖背包
      (3) RegionDynamic   区域动态规划
         MinimumMergeCost   最小合并代价
         MinimumMergeExtension   最小合并扩展
         MaximumBinaryTreeMerge   最大二叉树合并
      (4) TreeDynamic   树形动态规划
         BinaryTree   二叉树
         MultipleTree   多叉树
         Multi2BinaryTree   多叉树转二叉树
         MultiTreePath   多叉树路径
         LoopMultiTree   带环多叉树
         MultipleTraverseTree   多叉树树遍历
  • Chapter-5   GraphTheory   图论
  • Chapter-6   LinearAlgebra   线性代数
  • Chapter-7   Math   数学
  • Chapter-8   AnalyticGeometry   解析几何
  • Chapter-9   String   字符串
  • Chapter-10   GameTheory   博弈论

========================================

阅读方法

本书共分为十章,每一章都是一个专题,专门讲解一类算法问题,每一章中又划分多个小节,专门讲解这类算法中的某一分支。同一章节中的算法会有明显的联系,我把较为简单的算法放在前面,复杂的算法放在后面,很多复杂的算法会使用之前的基础算法,本书尽量不重复工作,而是尽量直接调用。每个算法都会附上测试用例。

========================================

西安交通大学计算机系
林荣彬
2014年2月16日