给定平面上n个点,求任意两点之间的最短距离,要求算法时间复杂度为O(n log n),请设计并实现。
考察说明
考察分治算法设计、复杂度分析和编码实现能力
回答思路
- 能够正确描述分治策略:按x坐标排序后递归划分
- 能正确合并:在分割线两侧宽度为d的带状区域内检查候选点对
- 能正确比较y坐标并只检查有限个点(通常为常数个)以保持线性合并
- 能分析递推式T(n)=2T(n/2)+O(n),得到O(n log n)
- 能处理重复点、点数小于2等边界情况
- 能给出正确、可运行的代码实现
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。