【无标题】


1.数据结构是什么

数据结构(Data Structure)是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合。
举个实际的例子:
在我们实现某个项目的时候,我们需要把数据存储到内存中
比如说我们实现一个通讯录,我们需要存储每个人的信息,方便我们日后查阅
这里有很多方式可以实现这个功能
比如说 数组 链表 树 哈希表…
每一种方式都有他独特的特点
例如我们用数组 它使用方便 但是静态数组存着存着可能就不够了
如果是动态数组,当空间不够了我们需要为它扩容 也比较麻烦
如果使用链表实现 每存一个我们就需要为其开辟一个空间,然后使用指针连接起来 比较方便 但是这种结构不方便查找
为了方便查找我们可以用树…
可以看出,不同的数据结构是为了我们的需求而服务的选出最合适的数据结构实现我们的项目就是我们学习数据结构的意义


2.什么是算法

算法(Algorithm):就是定义良好的计算过程,他取一个或一组的值为输入,并产生出一个或一组值作为输出。简单来说算法就是一系列的计算步骤,用来将输入数据转化成输出结果。
举几个例子:比如排序,查找,去重…
也就是给一组数据输入,经过处理后得到我们想要的一组输出
比如在淘宝搜索一个商品,我么可以按照价格升序排序,也可以降序排序,还可以按照其他要素进行排序


3.数据结构和算法的重要性

(1)在校园招聘的笔试中:

当前校园招聘笔试一般采用Online Judge形式, 一般都是20-30道选择题,3-4道编程题。
【2021】腾讯秋招技术岗编程合集
大公司这几年几乎都是5道左右的算法题
中小公司是选择题(20)+编程题(3)

(2)在校园招聘的面试中:

CVTE面试:
1.怎么计算一个类到底实例化了多少对象?
2.如果还有一个派生类继承了这个类,那么如何计算这两个类,各自实例化了多少对象?
3.你了解联合体和结构体吗?
4.如何测试一个机器是大端还是小端?
5.你了解队列和栈吗?
6.怎么用两个栈实现一个队列。
7.你使用过模版吗?
8.写一个比较两个数大小的模板函数。
9.你使用过容器吗?
10.判断两个链表是否相交。
11.Vector和数组的区别。
12.你在学校里做的最满意的一个项目是什么?简述一下这个项目。

腾讯的面试:
1、自我介绍
2、学习STL具体是怎么开展的?
3、如果一款产品给你怎么检测内存泄露?
4、进程间通信方式,共享内存是怎么实现的,会出现什么问题,怎么解决?
5、TCP为什么是可靠的?可靠是怎么保证的?为什么要三次握手?为什么三次握手就可以可靠?
6、Http数据分包问题;
7、Vector相关;
8、Hashmap相关;
9、红黑树的原理、时间复杂度等;
10、Memcpy和memmove的区别;
11、客户端给服务器发送数据,意图发送aaa,然后再发bbb,但是可能会出现aaabbb这种情况,如何处
理?
12、游戏的邮件服务器中每天会有玩家频繁的创建邮件和删除邮件,海量数据、大小不一,会有哪些场景,
怎么存储,邮件是怎么到内存的?
13、写一道算法题

百度的面试:
1.手写五道题,三道编程题,一道数据库,一道linux
2.数据库的题两问
3.算法了解的如何,插入排序编程
4.说一下IP,TCP,ARP
5.内核是什么
6.IP层主要功能
7.map和set底层
8.bootstrap的用法,html,html的全称
9.你觉得框架和库有啥区别
10.代码优化
11.哈希表
12.shell脚本
13.快速排序思想
14.递归是什么
15.分治是什么,与递归区别是什么
16.web平台是怎么做的
17.linux命令
18.了解些什么前沿的技术,英语怎么样,了解过什么英语的文献

以上加粗字体均与数据结构相关

(3)在未来的工作中

学好算法对一个程序员来说是必须的吗?如果是,至少应该学到哪种程度?

4.如何学好数据结构

1.死磕代码

一定要多写代码 每一题都认真写 可以借鉴他人代码的思想但是不要照抄 可以先理解然后自己独立实现
多敲 ** 多写** 多思考

2.注重画图和思考

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值