IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 计算机专业保研面试备考:计算机算法(必看) -> 正文阅读

[数据结构与算法]计算机专业保研面试备考:计算机算法(必看)

本文总结了计算机专业保研面试中较为常考的算法题目,也是博主当年的备考材料。如果这篇文章对你有帮助,请给博主点个赞鼓励一下吧。

  • 排序算法
    • 综述

    • 评价标准
      • 时间复杂度:比较+移动/交换,最好/最坏/平均
      • 空间复杂度:是否原地排序
      • 稳定性:顺序的问题
    • 常见算法
      • 插入排序(稳定)
        • 通过while向前移动

        • 最好:O(n);最坏:O(n^2).
      • 选择排序(不稳定)
        • 每次选择最小的元素交换

        • 一种实现方式:

        • 最好:O(n^2),最坏:O(n^2)
      • 冒泡排序(稳定)
        • 每次比较相邻元素并交换

        • 最好O(n) 最坏O(n^2)
      • 归并排序(稳定)
        • 平均、最好、最坏:O(nlogn)
        • 分+排+合
        • 每次合并都要用到一个临时数组,之后将数据拷贝到原数组
      • 快速排序(不稳定)
        • 平均时间复杂度是?O(nlogn),最坏情况下的时间复杂度是?O(n^2)
        • 每次选择第一个为基准数,两个哨兵i、j,每次先移动j;递归
      • 计数排序(可以稳定,可以不稳定)
        • 不稳定:用额外的数组记录输入数据中各数据出现的次数,然后将数据按出现频数取出
        • 稳定:将count改为累计,使用临时数组存储结果,反向填充数组
      • 桶排序(稳定)
        • 桶代表的是一个区间范围。将数组分配到有限量的桶里,然后对每个桶分别进行排序。

        • 数组元素n,m个桶。平均每个桶的元素个数为k = n/m个。如果在桶内我们使用快速排序,总的时间复杂度即为nlog(n/m)。如果桶的数量接近元素的数量,桶排序的时间复杂度就是O(n)?了。如果所有的元素都到了一个桶了,时间复杂度退化成?O(nlogn)?。
      • 基数排序(稳定)
        • 整数排序算法,将整数按位切割成不同的数字(分桶),然后按每个位数分别比较。
          • 设定10个桶,分别存放位数为0-9的元素。
          • 遍历初始序列,将元素放入不同的桶中
          • 按照桶的顺序,把桶中元素全部拿出来重新组装成一个序列
          • 重复2、3步骤,直到最高位。即可完成排序
        • 设待排序列为n个记录,序列中最大值的位数为d,数字的基数为 r,则进行链式基数排序的时间复杂度为O(d(n+r))。
      • 希尔排序(改进的插入排序,不稳定)
        • 把序列按一定间隔分组,对每组使用直接插入排序;随着间隔减小,一直到1,使得整个序列有序
        • 时间复杂度复杂
      • 堆排序(不稳定)
        • 建堆:从最后一个非叶结点开始shift_dowm
        • pop:最后一个结点提到根部,shift_down根节点
        • 最好最坏以及平均情况下的时间复杂度均为O(nlogn)
  • P问题、NP问题
    • P问题:Polynomial-time问题,能够在多项式时间内用算法求解的问题
    • NP问题:非确定型多项式时间(nondeterministic polynomial-time)问题,指不确定是否存在多项式时间的求解算法,但可以在多项式时间内验证一个猜测解的正确性的问题
    • 任意一个NP完全问题如果能够在多项式时间内解决,则所有的NP问题都能在多项式时间内解决
    • NPC类问题(Nondeterminism Polynomial complete),指所有NP问题都能在多项式时间复杂度内归约到的NP问题
    • NP难问题,指所有NP问题都能在多项式时间复杂度内归约到的问题
  • 主方法
    • 求解递推式的时间复杂度

  • 最短路径算法
    • Dijkstra
      • 求单源、无负权的最短路
      • 松弛操作
      • 时间复杂度O(n^2)
    • Floyd
      • 求多源、无负权边的最短路
      • 从i号顶点到j号顶点只经过前k号点的最短路程

    • Bellman-Ford
      • 求单源最短路,可以判断有无负权回路
      • 就是我小班课讲过的东西:在每次的遍历过程中,对所有的边进行遍历判断

  • 无序数组寻找中位数
    • 线性选择算法:快排递归处理划分的两边,而线性选择只对其中的一个部分进行处理。具体步骤为:
      • A[p...r]通过随机划分函数得到枢轴q
      • 根据划分的两个区间A[p...q-1],A[q],A[q+1...r]
      • 然后判断<=A[q]的元素数量k=q-p+1 与 需要寻找的第i小的关系,决定处理左面还是右面
      • O(n)
  • 最长公共子序列
    • c[i][j]表示串1前i个字符、串2前j个字符的最长公共子序列长度

    • 如果想要得到串本身:

      • 在对应字符相等的时候,用↖标记
      • 在p1 >= p2的时候,用↑标记
      • 在p1 < p2的时候,用←标记
  • 最长公共字串
    • 当A[i] != B[j],dp[i][j] = 0
    • 当A[i] == B[j],
      • 若i = 0 || j == 0,dp[i][j] = 1
      • 否则?dp[i][j] =?dp[i - 1][j - 1] + 1
  • 01背包问题
  • 卡特兰数
    • 适用题型:有一个大问题A,规模为n,要解决这个问题,可以用分治的思想,首先固定其中某一个元素,将剩下的n-1个元素拆分成两个小问题,这两个小问题的规模分别是(0,n-1) (1,n-2) (2,n-3) ... (n-1,0)
    • 如:
      • 二叉树计数,n个结点的二叉树,首先固定根节点,将剩下的n-1个结点拆分给左右子树
      • 从1到n可以构建的BST的数目
      • 三角形划分问题,凸(n+2)边形可以划分为n个三角形,首先固定一条边(即一个三角形),这个三角形将这个(n+2)边形拆分成两个更小的多边形
    • 递推式:

    • 通项公式:

  • 第K大的数
    • 借助最小堆,保持堆的大小为K,O(nlogk)
    • 基于快速排序,只关注位置k,o(n)
  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-07-15 23:50:43  更:2021-07-15 23:50:51 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 16:26:12-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码