算法
little_newBee
正在努力学习的小小菜鸟
展开
-
为什么基于比较的排序算法,时间复杂度总是大于等于nlgn
图片中举了3个数进行比较排序的例子,可以看到时间复杂度也就近似看作是比较次数就是树的高度。开始时,比较的结果就确定为n!个,每当比较一次,就砍掉一半可能性,即第一次比较,变成n!/2种可能,以此类推,最后剩一种可能,那么,比较次数m也就是树高为我们所求。于是:由此得出公式:n!/(2^h)2^h>=n!>n*(n-1)*(n-2)*...*1>(n/2)^(n/2)——————>h>=(n原创 2016-08-12 02:07:21 · 2603 阅读 · 0 评论 -
算法思想总结第一弹
可能大家都有一些这样的需求:为什么算法这么难,为什么我没有一些这样那样的算法思想,我看到这个题无从下手。别人都说《算法导论》多么多么好,我怎么看不懂。这些都是通病,除非像清华北大高材生智商与逻辑思维nb,数学公式推导的无与伦比,不然谁都会觉得这个东西想不出来。其实多做些算法题然后自己总结是可以总结出一些规律,就像以前做数学题,见到提醒就想公式一样。算法确实难,尤其是那些红黑树什么的,图论很多,我现在原创 2016-10-26 22:42:44 · 426 阅读 · 0 评论 -
面试题:不知道Head(头节点),想要删除链表中的某一个节点
这是一道不是很新的面试题,最近在刷题时遇到了。网上有些说法我觉得不够严谨,在这里说一下自己的见解。这里不考虑双向链表了,因为双向链表是可以很轻松做到的。答案都是比较统一的:将所要删除的节点的后一个节点的值copy到当前节点来。删除后一个节点。看上去貌似挺对的,思路也挺新颖。那么,如果我要删除的这个节点没有后一个节点呢???我搜过很多答案,都没有给出。以下是个人观点: ...原创 2018-07-19 17:35:50 · 2015 阅读 · 4 评论