百科问答小站 logo
百科问答小站 font logo



一个单链表,长度未知,如何快速的找出位于中间的那个元素? 第1页

  

user avatar   Ivony 网友的相关建议: 
      

程序员看到算法就容易High起来,但老实说外行看热闹,内行看门道。我一直觉得算法这个东西用什么精妙来形容,算得上是外行看热闹。

在这个问题的答案下,有两个算法:

分别是

@蔡啸

@Irons Du

提供的,很显然前者的算法看起来比较精妙,而后者的算法看起来简直就是low爆了。

但事实上,不考虑vector扩容开销的话,这俩算法的时间复杂度都是O(n),前者的优势在于其只需要俩指针空间,后者则直接把整个链表变成了一个vector,

也就是说后者是用空间换时间。


所以说这个看似很low的算法也是有其意义的,因为这个很low的算法通过指针获取元素的次数只有n+1或n次,而前者则需要获取n+n/2次。

当然,我们知道通过指针获取元素的性能是极高的,而且,1.5n和n+1的时间复杂度都是O(n)。但是如果通过指针获取元素的性能变得极差的时候(例如根本就是个远程调用的话),那么这种low爆的算法就会摇身一变成为最精妙的算法,而原来精妙的算法又会变为最SB的做法了。


算法没有高下之分,场景才是最重要的。


一个程序员成熟的标志就是从看到算法就会high,到看到薪酬才会high,,XD,,,,




  

相关话题

  学习算法有什么入门级的书 ? 或者学习资料。(英语不太好) 
  高斯模糊的原理是什么,怎样在界面中实现? 
  数据结构与算法中,树一般会应用在哪些方面?为什么? 
  2021-05-28:跳跃游戏 II。给定一个非负整数数组,你最初位于数组的第一个位...如何解答呢? 
  如何看待两次 IOI 金牌,一次 ACM 全球总决赛亚军的清华大学计算机系毕业生去高中当信息学教师? 
  既然使用神经网络也可以解决分类问题,那SVM、决策树这些算法还有什么意义呢? 
  如何用最省内存的方法表示0-9的十个字符? 
  哪些看似与图论无关的问题可用图论模型解决? 
  如何看待淘宝、微信、抖音推出算法关闭键?会带来哪些影响?还有哪些问题值得关注? 
  类似微博的 feed 热度算法如何计算? 

前一个讨论
女性该为自己穿得少招惹了色狼而负一定责任吗?
下一个讨论
这种水果有类似菠萝和芒果的味道,是什么水果?





© 2025-01-03 - tinynew.org. All Rights Reserved.
© 2025-01-03 - tinynew.org. 保留所有权利