如题,把区间分块,对每个块里的数字排序,然后在块里二分查找,复杂度理论是O(n^1.5*logn)
csy菊苣说把块的大小调整为n*log2(n),复杂度可以降到O(n*sqrt(n*logn))
然后我写了组大随机数据测试了一下,如果分块大小是sqrt(n)用了7.6s,分块大小是n*log2(n)时只用了3.6s!!
效率提升了非常多倍,感觉又是黑科技的节奏,收藏了
如题,把区间分块,对每个块里的数字排序,然后在块里二分查找,复杂度理论是O(n^1.5*logn)
csy菊苣说把块的大小调整为n*log2(n),复杂度可以降到O(n*sqrt(n*logn))
然后我写了组大随机数据测试了一下,如果分块大小是sqrt(n)用了7.6s,分块大小是n*log2(n)时只用了3.6s!!
效率提升了非常多倍,感觉又是黑科技的节奏,收藏了
计算数值区间内某个数字出现的次数
第1题二分查找有序列表[2,10,25,35,40,65,70,73,75,81,82,88,100]如果查找元素75,需要依
举报文章
请选择举报类型
补充说明
0/200
上传截图
格式支持JPEG/PNG/JPG,图片不超过1.9M