共5条回复
楼长
·
董一凡
回复于 2017年03月01日
我觉得快速排序都是一个不可能完成的任务。 Corner case 太多了,当我知道选择中点不能用相加除于2的时候,当时就吓到了。
2楼
·
pinxue
回复于 2017年03月01日
发明一个算法是挺难的,实现一个算法就是普通人也能做的工作了,写一个比较好的实现则需要相当的经验。
如果描述只有一个名字,写的人正好又没记住对应的是什么,相当于要人发明这个算法。
如果这人只记得或者收到了算法原理的描述,那么只是推导一个实现。为难之处主要就是各种边界条件处理要周全,以及找出较为优化的实现方式。例如,看似简单的二分查找算法发布之后,没有 bug 的实现12年之后才搞出来。
如果这个人正好刚学过或者才折腾过,能记住详情,那就只是个体力活罢了。
3楼
·
tutulyy
回复于 2017年03月01日
这个要分情况讨论。
1、对于算法不了解。 这个难点在于删除节点和增加节点的时候,二叉树的调整方式。往往可能前一秒看资料的时候懂了,但是隔半个月就忘了,主要还是不熟练、使用频次太低造成的。
2、对于语言操作不熟练。 这个说白了就是逻辑性复杂的代码写太少。大脑对于存放指针、索引这些东西的堆栈溢出了,说通俗点就是脑子不够用了。就像下棋和打牌,如果你习惯了算后3步,但是突然有一天让你算后6步就会算不过来,感觉脑子很累。
最后讲一下红黑树,个人认为红黑树是对于AVL平衡树的一种剪枝,如果能手写出AVL平衡树然后再去手写红黑树会比较简单。
4楼
·
ffeitian
回复于 2017年03月03日
这个对我来说是高难的内容,对高手来说是入门的内容
希望有一天可以掌握AVL树,红黑树,B树,B+树等