【发布时间】:2017-08-21 21:27:15
【问题描述】:
感谢收看。
计算有序数字数组中有多少个小于 4。
如何提高更长数组的算法性能?提高计算速度。二进制搜索有帮助吗?输出?
public static int CountNumbers(int[] sortedArray, int lessThan)
{
int count = 0;
for (int i = 0, len = sortedArray.Length; i < len; i++)
if (sortedArray[i] < lessThan)
count++;
else return count;
return count;
}
Assert.AreEqual(SortedSearch.CountNumbers(new int[] { 1, 3, 5, 7 }, 4), 2);
【问题讨论】:
-
使用二进制搜索
-
当您尝试使用二分搜索时发生了什么?
-
@SergeyBerezovskiy:二进制搜索什么数字?
-
@Tigran O(n log(n)) 比 O(n) 更多,而不是更少。二分查找是 O(log(n))。
-
如前所述,二分搜索是您的朋友。使用返回给定数组中搜索值位置的实现(如果我们插入此值)。
标签: c# .net algorithm sortedlist