数据结构和算法(1)——算法分析的基本必备理论

目录

1.数据结构和算法概述

(1)线性结构

(2)非线性结构

2.简单示例介绍分析面试考察点

3.算法分析之时间复杂度

(1)基本概念

(2)近似记法

(3)P与NP

(4)主项定理


1.数据结构和算法概述

  • 什么是数据结构?
    • 数据结构是一种特定的计算机存储、组织数据的方式,其宗旨是使计算机能够高效的使用数据
  • 什么是算法?
    • 算法:有限时间内解决问题的一系列清晰指令
    • 效率:
      • 空间
      • 时间

分类:

线性结构和非线性结构

(1)线性结构

特点:数据元素之间存在一对一的关系

有两种不同的存储结构,包括:

  • 顺序存储结构:内存分配时,地址是连续的
  •            数组,链表,栈,队列
  • 链式存储结构:链表中的存储元素的地址不一定是连续的,元素节点中存放数据元素以及相邻元素的地址信息
  •            二维数组,多维数组,广义表,树结构,图结构

(2)非线性结构

非线性结构包括:

  • 二维数组
  • 多维数组
  • 广义表
  • 树结构
  • 图结构

2.简单示例介绍分析面试考察点

示例1:找到丢失的数字:

  • 现在你手上有n-1个数字,这些数字的范围是[1,n]且这n-1个数字中没有重复的数字。由上述条件可知:你手上的数字丢失了一个。请编写一段高效的找到该缺失数字的代码

上述题目首先给出几个思路:

  • 1.先排序,然后使用二分法的方式找到(比如说这里的需求中没有描述数字本身有没有排序,我们可以先问面试官数字有没有排序)
  • 2.先排序,然后使用线性的方式循环遍历去找
  • 3.对[1,n]求和,然后减掉数组中的元素n-1个数字,就可以得到丢失的数字
  • 4.使用计数排序,使用n个抽屉并且给每个抽屉编号,遇到一个数字就把它放到对应的抽屉中去,然后循环遍历抽屉,找出为空的就是丢失的数字
  • 5.使用异或,
    • 异或满足,
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值