算法和数据结构简介

硬计算类算法:

  • 精确求解
  • 大厂算法和数据结构笔试、面试题、acm比赛或者和acm形式类似的比赛,考虑的都是硬计算类算法
  • 但是某些问题使用硬计算类的算法,可能会让计算的复杂度较高

软计算类算法:

  • 更注重逼近解决问题,而不是精确求解,计算时间控。当一个计算量很大时你不可能去算出结果,这个是后就算出当前的最优解。
  • 比如:模糊逻辑、神经网络、进化计算、概率理论、支持向量机、群体智能

注意:

  • 硬计算类算法是所有程序员岗位都会考,任何写代码的工作都会用到的。
  • 但是算法工程师除了掌握硬计算类的算法之外,还需要掌握软计算类的算法
  • 这个两个名词都不是计算机科学或者算法中的标准术语

连续结构:

  • 连续结构可以理解为:在内存空间中逻辑上是连续的一整块空间的结构,但实际上可能会有分页等情况
  • 数组为什么通过下标查询(寻址) 的时间差不多,就是因为是连续结构,数组每个格子都是固定长度的,只有根据磁头算出偏移量,就能根据对应的偏移量就能快速寻址了
  • int 类型,32位比特连续靠着一起组成的空间,long 类型,64位比特连续靠着一起组成的空间,任何简单类型都是连续结构

跳转结构:

  • 内存中一个小空间由数值和下一个小空间的内存地址组成,这些小空间随机的分布在内存中不同区域,通过指针相互关联,形成跳转结构,链表就是跳转结构。

注意:

  • 任何数据结构都一定是这两个结构拼出来的!没有例外!

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部