第7次东南大学面试算法讲座.ppt

  1. 1、本文档共100页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
东南大学·面试 算法讲座 July 东南大学自动化研会 2014-7-16, 晚6:30~9:00 本次讲座大纲 笔试面试考什么 解决笔试面试题的常用算法 常用算法的时间复杂度 包括各类排序算法 O(N)时间复杂度内能解决的问题 包括KMP,最长回文子串Manacher算法 如何学习算法 相互串联 以Trie树、后缀树,贪心、动态规划为例 简单入手,追本溯源 二叉树、红黑树、2-3-4树、B树为例 海量数据处理面试题 十种解决之道 笔试面试考什么 笔试偏基础 语言基础 int hope; int* hope; double(*p) [3]; void (*func) (); 操作系统 线程与进程的区别 产生死锁的条件 如何规避死锁 C++内存分配 堆、栈、自由存储区、全局/静态存储区,常量存储区 网络协议 TCP建立连接的三次握手 数据库 概率论与数理统计 推荐《数理统计学简史》 基础不够 补基础 语言 C : 《C 和指针》 《征服C 指针》 C++: 《C++ Primer》 《STL 源码剖析》 《Effective C++》 《深度探索C++ 对象模型》 面试偏算法 数据结构上的增删改查 查找、遍历、排序 算法 分治、递归、回溯 贪心、动态规划 海量数据处理 基于各个数据结构上的增删改查 字符串 字符串库函数的编写,例如atoi 等 字符串查找、翻转、匹配 数组 查找(如二分查找、杨氏矩阵查找) 链表 翻转、遍历、查找、删除、合并 Hash表 查找 树 遍历(前序、中序、后序) set、map 高级树的查找(红黑树、B树、R树) 图 遍历 查找(DFS、BFS) 最短路径算法 知道了考什么,怎么破 笔试面试常用算法 穷举(递归回溯)——“万能的” 求n个数的全排列 8皇后(N皇后问题) 分治 分而治之,然后归并 递归回溯 DFS 空间换时间 hashtable 巧用数据结构 堆 能排序,考虑排序 前后两个指针往中间扫 若已经排好序,想想有无必要二分 不能排序 贪心 最小生成树 Prim, Krusal 最短路 dijkstra 动态规划 如 01背包问题,每一步都在决策 细节处理 注意边界条件 各类算法的时间复杂度 O(1) 到 O(nlogn) O(1) 基本运算, +,-,*,/,%,寻址 Hash表的期望复杂度 O(logn) 二分查找 O(n1/2) 枚举约数 O(n) 线性查找 建立堆 O(nlogn) 归并排序 快速排序的期望复杂度 基于比较排序的算法下界 O(n2) 到 O(nn) O(n2) 集合里枚举所有二元组、朴素最近点对 O(n3) 集合里枚举三元组、Floyd最短路、普通矩阵乘法 O(2n) 枚举全部的子集 O(2nn) TSP的动态规划算法 O(n!) 枚举全排列 O(nn) 枚举[1..n]的n维数组的全部元素…… 总结 O(1) O(logn) O(n1/2) O(n) O(nlogn) O(n2) O(n3) O(2n) O(2nn) O(n!) O(nn) 各种排序算法的时间复杂度 O(N)的时间复杂度能解决什么问题? O(N)时间内能解决的问题 字符串 字符串循环位移 最长回文子串 数组 寻找最小的K个数 2-sum 最大连续子数组和 快排的partition 奇偶排序 荷兰国旗问题 完美洗牌问题 最大面积直方图 最大连续乘积子数组 查找排序 杨氏矩阵查找 出现次数超过一半的数字 建立堆 计数排序 二叉查找树的前中后序遍历 KMP Manacher 字符串翻转 翻转 定义字符串左旋转操作:把字符串前面的若干个字符移动到字符串尾部,如把字符串 abcdef 左旋转 3 位得到字符串 defabc。 要求时间复杂度为 O(n),空间复杂度为 O(1)。 暴力移位 三步翻转(字符串 abcdef - defabc) X:abc,Y:def; X-X^T,得:abc-cba;Y-Y^T,得:def-fed X^TY^T,得到:cbafed-defabc,即(X^TY^T)^T=YX 寻找最小的k个数 输入n个整数,输出其中最小的k个。 例如输入1,2,3,4,5,6,7和8这8个数字,则最小的4个数字为1,2,3和4。 最大子数组最大和 题目描述 输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为O(n)。 i)一维:输入的数组为1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为3, 10, -4, 7, 2,因此输出为该子数

文档评论(0)

xina171127 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档