一维最接近点对的分治解法 .
来源:互联网 发布:小译软件 编辑:程序博客网 时间:2024/05/18 04:58
import java.util.Arrays;import java.util.Scanner;/* * 用分治法输出一个一维数组中的n个不同实数间距离最小的两个实数。输入:实数数组X, 实数个数n, 输出: 距离最小的两个实数. * */public class Divided { private static float[] X; private static int a = 0; private static int b = 0; private static float min = Float.MAX_VALUE; public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); X = new float[n]; for (int i = 0; i < n; i++) { X[i] = sc.nextFloat(); } Arrays.sort(X); fun(0, n - 1); System.out.println(X[a]); System.out.println(X[b]); } private static void fun(int low, int high) { if (low == high) { return; } if (low + 1 == high) { if (min > Math.abs(X[high] - X[low])) { min = Math.abs(X[high] - X[low]); a = low; b = high; } } else { int mid = (low + high) / 2; fun(low, mid); fun(mid + 1, high); if (min > Math.abs(X[mid] - X[mid + 1])) { min = Math.abs(X[mid] - X[mid + 1]); a = mid; b = mid + 1; } } }}
- 一维最接近点对的分治解法
- 一维最接近点对的分治解法 .
- 一维最接近点对(递归分治)
- 分治算法 最接近点对(一维)
- 分治---最接近点对问题
- 洛谷Oj-平面上的最接近点对-分治
- nlogn的二维最接近点对问题(分治)
- 分治法--最接近点对问题
- 最接近点对问题(分治法)
- 【分治法】最接近点对问题
- 分治法--最接近点对问题
- 分治法求最接近点对问题
- 【分治法】最接近点对问题
- HDU - 1007 分治(最接近点对模板)
- 最接近点对问题(分治)
- 分治-最接近点问题
- 最接近的点对问题
- 分治法编程问题之最接近点对问题的算法分析
- 谷歌背后的数学
- 《java编程思想》之垃圾回收器如何工作
- 替换文件中字符串的bat脚本
- Webkit文本资源编码选择
- 设计模式——工厂方法模式
- 一维最接近点对的分治解法 .
- POJ1157 LITTLE SHOP OF FLOWERS DP
- weblogic EJB客户端使用NativeIO
- Poj 1163 The Triangle
- 恐怖绝伦,SOPA和PIPA捅了网站窝!
- C++ string类assign用法
- 为不带Lib的DLL制作Lib
- linux进程编程
- apache+wsgi+python的web调试