当可以线性解决时,我很难回忆起用二次复杂度做某事的名称。
例如,使用get-by-index
函数来迭代链表而不是仅使用 anext-element
是这种反模式的典型情况。
我认为是“某事画家”,比喻一个人正在画一条路,但没有随身携带油漆桶,每次需要重新填充画笔时都必须回到起点。
干杯。
当可以线性解决时,我很难回忆起用二次复杂度做某事的名称。
例如,使用get-by-index
函数来迭代链表而不是仅使用 anext-element
是这种反模式的典型情况。
我认为是“某事画家”,比喻一个人正在画一条路,但没有随身携带油漆桶,每次需要重新填充画笔时都必须回到起点。
干杯。
您可能会想到Schlemiel the Painter 算法。
几年前,乔尔·斯波尔斯基(Joel Spolsky)在他的“回归基础”文章中包含了一个关于该主题的经典笑话:
Shlemiel 找到了一份街头画家的工作,在路中间画出虚线。第一天,他把一罐油漆带到路上,完成了 300 码的路。“那还不错!” 他的老板说,“你是一个快速的工人!” 并付给他一个戈比。
第二天,Shlemiel 只完成了 150 码。“嗯,那不如昨天好,但你仍然是一个快速的工人。150码是体面的,”并付给他一个戈比。
第二天,Shlemiel 粉刷了 30 码的道路。“只有三十个!” 他的老板喊道。“这不可接受!第一天你做了十倍的工作!这是怎么回事?”
“我无能为力,”Shlemiel 说。“我每天都离油漆罐越来越远!”
PS不要将此与Painter's Algorithm混淆,后者是一种实际的构图方法。