首页 > 其他 > 详细

analysis of algorithms

时间:2019-10-03 16:50:09      阅读:55      评论:0      收藏:0      [点我收藏+]

1.

技术分享图片

 

2. binary search (sorted array)

给定查找对象,array,以及最大最小的范围;将查找对象与middle作比较,进而改变最大最小的范围,然后调用递归

时间复杂度的计算要考虑最坏的情况,本题中最坏的情况类比一条面包每天吃一半几天吃完的问题,时间复杂度为log以2为底n的对数

O(log2 n)可以直接写成O(log n),与底数无关(换底公式可以将它们换成统一的底)

3. array的缺点有两个,第一个是fixed size,所以一开始就要给所有元素预留出足够的memory;第二个是对一个element进行改变整个array都要跟着变

所以引入linked list, linked list中的element仍然为单独个体,由指针指向下一个,优点是不需要提前知道element的个数,且对整体的影响较小

4. pointer需要一个指向第一个,除了最后一个之外的每一个都需要一个pointer指向下一个,最后一个element标记为Null

C语言中一定要让程序知道什么时候程序结束,不然不标记NULL的话C语言就会对最后一个element随机赋值

5. 寻找一个element时,时间复杂度为O(|L|), 其中| |代表长度

6. 

  • f(n) belongs to O(g(n)) if f(n) is asymptotically less than or equal to g(n)
  • f(n) belongs to Ω(g(n)) if f(n) is asymptotically greater than or equal to g(n)
  • f(n) belongs to Θ(g(n)) if f(n) is asymptotically equal to g(n)

7. pointer向开头增加元素,令new=new_element, new_element通过pointer指向原来的L

删除第一个element时,return L.next直接返回除第一个element之外的元素,时间复杂度O(1):

技术分享图片

 

 

删除一个特殊的element,时间复杂度为O(|L|):

 技术分享图片

 

 补充:有一种双向指标,在dequeue时有用,可以结尾加指针

8.

技术分享图片

 

analysis of algorithms

原文:https://www.cnblogs.com/eleni/p/11620040.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!