蛮力法和分治法 求最近对问题——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 ......
你觉得自己是一个Java专家吗?是否肯定自己已经全面掌握了Java的异常处理机制?在下面这段代码中,你能够迅速找出异常处理的六个问题吗?
OutputStreamWriter out = ...;
java.sql.Connection conn = ...;
try { // ⑸
Statement stat = conn.createStatement();
ResultSet rs = stat.executeQuery("select uid, nam ......
流 就是一根管子。流总是成对出现。
分为输入流、输出流。四个最近本的抽象类是:inputstream,outputstream.Reader与writer.前者是字节流,后者是字符流。
分为 字节流(8bit)、字符流(16bit)。
分为节点流(直接把管子放到目标上),处理流(把管子包装处理,如
bufferedwriter与bufferedreader
)
new FileOutputStr ......
//代码经过编译,运行,证明可以运行
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.io.*;
import java.net.*;
import javax.swing.filechooser.FileFilter;
public class Ftp extends JLabel
{
private JButton openButton;
privat ......