- 博客(0)
- 资源 (2)
- 收藏
- 关注
最近点对问题的实现
使用分治的思想,将最近点对问题转化为左右和横跨左右的点对的问题,由左右两个子问题返回左右两边最短的点对距离,设为d,则横跨左右的点对只需要考虑距离分割线水平距离小于d的点,而且对于每个横跨左右的点得搜索遍历不需要考虑所有其他的点,而只需要考虑最多6个节点(因为由鸽巢原理知,假如d*2d区域里有多于6个点时,左右两个子问题的最近点对将小于d)。同时利用分割的思想为以y坐标排序的数组中,不需要每次都排序,而只需要使用它的父问题传入的y排序数组切割掉一部分即可,而最初的排序源于一次快排。算法一共递归logn次,每层计算量都为n,而主函数调用两次快排,综合起来,整个算法的时间复杂度为O(nlgn)。
2018-03-20
利用分治法设计一个计算两个n位的大整数相乘的算法,要求计算时间低于O(n2)。
利用分治法设计一个计算两个n位的大整数相乘的算法,要求计算时间低于O(n2)。支持不同位数大数的相乘。
2018-03-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人