算法基础和数据结构

算法基础

1.算法的几个特征

  有穷性、确定性、输入、输出、可行性

2.算法的复杂性定义

3.递归算法的定义、递归算法的两要素

  定义:一种直接或者间接调用自己的算法

  两要素:

    ①终止条件

    ②每次调用的时候,范围会缩小

4.分治算法的思想,经典的分治算法(全排列、二分搜索、归并排序、快速排序、线性时间选择、最接近点对问题)

  分治算法,就是分而治之,将复杂问题分解成简单问题解决

5.动态规划算法的解题框架?动态规划算法的两个要素?备忘录方法?

  动态规划和递归类似,但是用备忘录保存中间结果,以免重复计算

  两要素:

    ①保存中间结果

    ②递归关系式

6.经典动态规划问题(矩阵连乘问题、最长公共子序列问题、0-1背包问题)

7.贪心算法思路,贪心算法的两个要素

8.经典的贪心问题(活动安排问题、背包问题、装载问题、哈夫曼编码、单源最短路径、最小生成树问题)

9.回溯法的思想,回溯法中有哪两种典型的模型

10.经典的回溯算法(n后问题、0-1背包问题、旅行售货商问题)

11.分支限界法思想,有哪两种分支限界法

12.经典的分支限界算法(0-1背包问题、旅行售货商问题)

数据结构

1.数据结构定义

  数据元素的集合 + 数据元素之间关系的集合

2.栈的两个应用:括号的匹配和表达式的计算。是怎么应用的?表达式计算用的是哪种表达方式?有什么好处?

3.字符串匹配算法:朴素的匹配算法、KMP算法

4.二叉树的前序、中序、后序递归遍历算法,二叉树前序非递归遍历算法

5.堆,建堆算法,堆的插入和删除算法,堆排序

6.哈希,哈希函数有哪些种,余数的取法,处理冲突的方法,闭散列方法有哪些?

7.二叉搜索树的搜索、插入、删除。时间复杂度

8.二叉平衡树的插入结点的原理,有哪几种旋转方式?分别适用于哪种情况。分析二叉平衡树的时间复杂度

9.红黑树的定义,红黑树的性能分析和与二叉平衡树的比较。

10.图有哪些存储表示

11.链表插入排序,链表归并排序

12.常见的有哪几种排序算法,试比较其时间复杂度,以及是否稳定,及各自使用的情形

13.常用分配排序有哪几种? 基数排序的定义,分类及原理。

14.外部排序的过程。

15.B树、B+树、Trie的概念及用途,添加删除结点的原理。

原文地址:https://www.cnblogs.com/hwu2014/p/4449420.html