diff --git a/notes/算法 - 算法分析.md b/notes/算法 - 算法分析.md index 6d1ff453..f8b40aa4 100644 --- a/notes/算法 - 算法分析.md +++ b/notes/算法 - 算法分析.md @@ -72,7 +72,7 @@ public interface ThreeSum { ### 1. ThreeSumSlow -该算法的内循环为 `if (nums[i] + nums[j] + nums[k] == 0)` 语句,总共执行的次数为 N(N-1)(N-2) = N3/6-N2/2+N/3,因此它的近似执行次数为 \~N3/6,增长数量级为 O(N3)。 +该算法的内循环为 `if (nums[i] + nums[j] + nums[k] == 0)` 语句,总共执行的次数为 N(N-1)(N-2)/6 = N3/6-N2/2+N/3,因此它的近似执行次数为 \~N3/6,增长数量级为 O(N3)。 ```java public class ThreeSumSlow implements ThreeSum { @@ -149,7 +149,7 @@ public class BinarySearch { 更有效的方法是先将数组排序,然后使用双指针进行查找,时间复杂度为 O(N2)。 -同样不适用与数组存在重复元素的情况。 +同样不适用于数组存在重复元素的情况。 ```java public class ThreeSumTwoPointer implements ThreeSum { @@ -194,7 +194,7 @@ public class ThreeSumTwoPointer implements ThreeSum { | 8000 | 33575 | 8.2 | | 16000 | 268909 | 8.0 | -可以看到,T(2N)/T(N) \~ 23,因此可以确定 T(N) \~ aN3logN。 +可以看到,T(2N)/T(N) \~ 23,因此可以确定 T(N) \~ aN3。 ```java public class RatioTest {