Algs4-1.2.2编写一个Interval1D的用例
1.2.2编写一个Interval1D的用例,从命令行接受一个整数N。从标准输入中读取N个间隔(每个间隔由一对double值定义)并打印出所有相交的间隔对。
解:
public class Test2
{
public static void main(String[] args)
{
int N=Integer.parseInt(args[0]);
Interval1D[] interArray=new Interval1D[N];
int index=0;
//generate interval1D
while(!StdIn.isEmpty())
{
interArray[index]=new Interval1D(StdIn.readDouble(),StdIn.readDouble());
index++;
if (index==N) break;
}//end while
//find intersect
for (int i=0 ;i<N;i++)
for (int j=i+1;j<N;j++)
if (interArray[i].intersects(interArray[j]))
StdOut.printf("%d(%f,%f)
%d(%f,%f)\n",i,interArray[i].min(),interArray[i].max(),j,interArray[j].min(),interArray[j].max());
}//end main
}//end class
附加说明:
http://algs4.cs.princeton.edu/code/ 中的Interval1D.java的首行:package edu.princeton.cs.algs4;需要注释掉。
同时教材中给出的intersect调整为intersects