会写递归超越了多少程序员?
作者:卡卷网发布时间:2024-12-12 00:27浏览数量:86次评论数量:0次
一般来说公司代码里写递归的只有两种人。
一种是大拿,他写的代码基本上就是你司的最高水平,他怎么写代码你最好别质疑,因为他大概率是你司最权威的开发,他写成这样自有他的想法。
另外一种,是公司的BUG制造机,基本上名下挂着一裤衩子BUG改不完,关键自己还觉得自己很厉害,这种人一般离开除只差一个重大事故。
鉴于你问“会写递归超越了多少程序员?”,我觉得你大概率是后一种。
有一种脑子就是认死理,知乎小鬼太多了。非得跟我说树状结构只能用递归遍历,唉,上点干货吧。
首先你得知道,基本上树状结构都是从数据库加载进来的,每一个节点都是在数据库里的一行。而这些节点其实都在一张表里。
那么,我就可以根据这张表建一个数组,数组里有这棵树上的每一个节点,然后只需要通过遍历这个数组,你就能用这个数组去组成一个树展示在画面上,最笨最笨,你用一个循环加一个节点名-》节点指针(如果是java这种现代语言直接用对象就行,class对象其实就是一种限制很大的指针)的字典就能把这个树拼出来。
当你需要取特定特征的节点的时候,你也不需要去刚才生成的那个树里取,直接找刚才那个数组,就能取到任何一个节点。
当你需要修改节点在树上的位置的时候,你只需要修改这个节点的父节点然后重新调用方法生成这个树就可以了,不需要真的把节点挪过去,增删同理。
也就是说,只要你会了如何从数据库里生成树,那么你就能通过循环简单的对树进行任意操作而不需要递归。除非你作为赛博原始人还在用红黑树快速查找数据。
绝大多数算法难题其实都不是你写不出来导致的,而是这个东西在设计阶段就不合理,应该从设计阶段规避这个困难防止死磕一个容易出事的辣鸡代码片段。
树,图等复杂结构都可以通过这个方法取规避递归,特别是图,算法遍历图十个有九个是有潜在BUG的。碰都别碰。20年以前内存值钱,所以算法里会有大量的红黑树等数据结构来平衡查询消耗的时间和内存占用,但是现在你画一百颗树可能都没有画面上的一张图片占内存,扣这点内存不如用白菜价的内存换CPU运算时间来的合适。
免责声明:本文由卡卷网编辑并发布,但不代表本站的观点和立场,只提供分享给大家。
相关推荐

你 发表评论:
欢迎