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

posted @ 2018-10-25 11:34  修电脑的龙生  阅读(447)  评论(0编辑  收藏  举报