Skip to content

fxh31/algorithmJS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JavaScript Algorithms

前置知识

  • 时间复杂度指该算法在==最坏==的情况下的时间复杂度情况(O)。

算法优化

算法优化的标准一般有两个:

  • 数据状况:数据状况特殊,可以使用不同算法进行优化;
  • 问题标准:所求的问题特殊,可以使用不同算法进行优化;

剖析递归行为和递归行为时间复杂度的估算

用递归的方式找一个数组中的最大值,系统上是如何实现的?

mid = $(L + R)/2$:直接使用 L + R 可能会出现数值溢出的情况,导致结果除出来为负数或其它导致不能正常显示结果的情况。所以可以使用:

mid = $L+(R-L)/2$:这样得到的就是一个安全的、不会溢出的数值。

也可以直接利用二进制右移一位(相当于除2):mid = $L+((R-L) >> 2)$

补充:考虑一个二进制数1010,它表示十进制数10。如果我们将它向右移动一位,得到0101,它表示十进制数5。这是因为将原来的数值除以2,得到5。

About

JavaScript algorithms

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published