![]() |
1
6
这是一个完全展开的泡沫排序,用内联表示的XOR交换技巧。我用几个不同的选项来编译它,希望它能产生一些很棒的紧凑代码,但实际上并没有那么令人印象深刻。我投掷了一些
我认为这里唯一的优势是新颖性。它的确引起了你的注意!我会对滥用更多 现代的 技术,比如使用mmx/sse或gpu进行排序,或者使用5个线程,这些线程都在努力将元素插入正确的位置。或者可能是外部合并排序,以防5元素数组不能容纳在核心中。 |
![]() |
2
5
XOR技巧只是交换两个整数。Goto是循环的仿制品。优势?一点也没有,除了展示如何模糊你可以写的代码。函数()后的参数是不推荐使用的功能。手头有一个数组,有5个不同的指针指向数组的每一个元素,这是很可怕的。总而言之:糟糕!:) |
![]() |
3
1
这是对 Gnome sort 五项。
“向前走一步”是通过跳到下一步来完成的。
|
![]() |
4
1
你不能因为这样的回答而失去控制地解雇某人。它可能是装在嘴边的。 这个问题是高度人为的,促使人为的回答。 你需要了解候选人如何解决更多的现实问题。 |
![]() |
5
1
1970年以前出生的人在维护不可读的代码方面是否更好?如果是这样的话,那很好,因为我是,而且它只能是一个卖点。
代码有
通常情况下,我也会说“goto,yuck”,但在本例中,一旦您了解了所使用的排序算法,它就以相当优雅的方式使用了。事实上,你可以说它比使用一个索引变量(除非它不能泛化为n个元素)使gnome排序算法更清晰。所以你有一个补偿功能,它使goto看起来很好:) 至于“你带候选人回来参加第二次面试吗?”如果代码片段附带一个详细的注释,解释算法的工作原理和作者使用它的动机,我肯定会说是的。如果没有,我可能会给他打电话问那些问题。 注意,代码片段使用K&R样式的参数声明。这意味着作者可能已经10到15年没有用C语言编写程序了,或者他从互联网上复制了它。 |
![]() |
Aarish Ramesh · 在java中写入csv文件 11 年前 |