[算法 | 性能] 数据结构与算法应用场景-前端

61 阅读2分钟

背包问题

  1. 当时的需求是这样的,有若干张固定高度的图片,宽度不固定,要求显示多行图片,且尽可能使得把网页宽度占满。

斜率

  1. 如何判断一个点是否在一个多边形内?

博弈论 alpha-bata 减枝法

对战类斗兽棋H5游戏、象棋等等

  1. 浏览器的后退功能是典型的栈应用,如果你的系统需要支持撤消功能也可以考虑栈
  2. 使用二叉树和栈制作简易的带运算符优先级和括号的计算器是数据结构中经常用到的例子
  3. 栈普遍应用于编译器、文本检测、科学计算等等,在编译器中,它用来检测一个函数体等是否为封闭的(括号是否成对等等),在文本检测中,想想你的vs,如果最后没有大括号它就会检测出来,和编译器中一样,在科学计算中,就像商店能买到的那些高级计算器,输入一个算式可以直接计算出来结果,而不像普通计算器中,只能输入数字,然后在按键一步一步计算,以上这些应用场景,归根结底都是对文本的检测
  4. 击下级菜单之后依次返回上级菜单之类的

队列

  1. 比如有些任务很耗时但不得不做,那么你可能放在一个队列里,使用一个线程每一次从队列里取出一个并执行
  2. WOW登陆的时候要排队,告诉你是第200个可以登陆的人之类的,系统自然是使用队列每次允许一个玩家进入
  3. 主要应用在网络通信、系统等。windows的所有事件都是放在队列里面的。
  4. 最典型的,就是系统的任务分配了,每个进程或线程都分配在某些队列里,方便cpu时间片的分配调度,任务的运行不可能是你最后打开的程序先运行吧,当然它有优先级,这个排除在外