蛮力法和分治法 求最近对问题——Java 实现
设p1=(x1, y1), p2=(x2, y2), …, pn=(xn, yn)是平面上n个点构成的集合S,设计算法找出集合S中距离最近的点对。
蛮力算法描述:
int ClosestPoints(int n, int x[ ], int y[ ], int &index1, int &index2)
{
minDist=+∞;
for (i=1; i<n; i++)
for (j=i+1; j<=n; j++)
{
d=(x[i]-x[j])* (x[i]-x[j])+(y[i]-y[j])* (y[i]-y[j]);
if (d<minDist) {
minDist=d;
index1=i;
index2=j;
}
}
return minDist;
}
ClosestPair1.java //蛮力算法
import java.util.*;
public class ClosestPair1
{
public static void main(String[] args)
{
/**
*输入需要比较的点的对数存在变量n中
*/
Scanner in=new Scanner(System.in);
System.out.println("How many pairs of points to compare?(有多少对点需要比较?)");
int n=in.nextInt();
int[] x=new int[n];
int[] y=new int[n];
/**
*输入这些点的横坐标和纵坐标分别存储在x[n]和y[n]
*/
System.out.println("Please enter these points,X-coordinate(请输入这些点,横坐标):");
for(int i=0;i<n;i++)
{
x[i]=in.nextInt();
}
System.out.println("Please enter
相关文档:
Java NIO API详解
在JDK
1.4以前,Java的IO操作集中在java.io这个包中,是基于流的阻塞(blocking)API。对于大多数应用来说,这样的API使用很方
便,然而,一些对性能要求较高的应用,尤其是服务端应用,往往需要一个更为有效的方式来处理IO。从JDK 1.4起,NIO
API作为一个基于缓冲区,并能提供非阻塞(non-blo ......
一.代码优化
内存会溢出肯定和代码逃不了关系,99.99%学java的人都知道垃圾回收器是 java的一大优点并据此来嘲笑C++。显然这个特性为代码编写者省了不少事,但这个特性却带来了不少隐患。举个例子在游戏当中经常有不同场景的切换,如从游戏逻辑退到主菜单逻辑,对游戏逻辑对象的态度很多人会选择忘记等待垃圾回收 ......
对于Java桌面应用来说,比较烦琐的就是安装部署问题,如:客户端是否安装有jre、jre版本、jre在哪里下载、如何用jre启动Java应用等等。不要说刚接触电脑的人,就算是比较熟悉电脑,如果没有接触过Java,面对一个Java应用,如何在Windows下启动它,估计都会折腾半天。所以这个是导致Java桌面应用被一些人所讨厌的最大原因,J ......
1 基本方法
import java.io.*;
public class input1
{
public static void main(String[] args) throws IOException
{
InputStreamReader reader = new InputStreamReader(System.in);
BufferedReader buf = new BufferedReader(reader);
/* 或者
BufferedReader buf; ......
mysql数据库本身有数据备份和批量数据插入的命令,java代码可执行这些命令。
安装mysql后,需要设置环境变量:我的电脑右击--属性--高级--环境变量,增加MYSQL_HOME=“mysql安装路径”,然后path=%MYSQL_HOME%\bin
代码如下:
import java.io.BufferedReader;
import java.io.FileInputStream;
import java. ......