美文网首页
1.2 数据抽象 1.2.1

1.2 数据抽象 1.2.1

作者: cxfwxy | 来源:发表于2020-08-10 10:22 被阅读0次

题目:编写一个Point2D的用例,从命令行接受一个整数N。在单位正方形中生成N个随机点,然后计算两点之间的最近距离。

(用了两重for循环,效率确实挺差,等学完这本书之后再回过头来看看能不能想出别的高效方法。)

最短距离用加粗红线标出
import edu.princeton.cs.algs4.*;

public class TestPoint2D {

    public static void main(String[] args) {
        
        int n = Integer.parseInt(args[0]);

        StdDraw.setCanvasSize(800, 800);
        StdDraw.setXscale(0, 100);
        StdDraw.setYscale(0, 100);
        StdDraw.setPenRadius(0.005);
        StdDraw.enableDoubleBuffering();

        Point2D[] points = new Point2D[n];
        for (int i = 0; i < n; i++) {
            int x = StdRandom.uniform(100);
            int y = StdRandom.uniform(100);
            points[i] = new Point2D(x, y);
            points[i].draw();
        }

        Double minDis = points[0].distanceTo(points[1]);
        Point2D p1 = new Point2D(0.0, 0.0);
        Point2D p2 = new Point2D(0.0, 0.0);

        StdDraw.setPenRadius();
        StdDraw.setPenColor(StdDraw.BLUE);
        for (int i = 0; i < n; i++) {
            for (int j = i+1; j < n; j++) {
                if (points[i].distanceTo(points[j]) <= minDis) {
                    minDis = points[i].distanceTo(points[j]);
                    p1 = points[i];
                    p2 = points[j];
                }
                points[i].drawTo(points[j]);
                StdDraw.show();
                StdDraw.pause(100);
            }
        }

        StdDraw.setPenColor(StdDraw.RED);
        StdDraw.setPenRadius(0.01);
        p1.drawTo(p2);
        StdDraw.show();
        StdDraw.pause(100);
        
    }
    
}

相关文章

  • 1.2 数据抽象 1.2.1

    题目:编写一个Point2D的用例,从命令行接受一个整数N。在单位正方形中生成N个随机点,然后计算两点之间的最近距...

  • 数据篇

    1.数据收集 1.1 数据来源:微博、知乎 1.2 数据存储: 1.2.1 事件表: 1.2.2 博文表: 1.2...

  • 1.2数据抽象

    1. 抽象数据类型(ADT):是一种能够对使用者隐藏数据表示的数据类型。 API:应用程序编程接口 对象:是能够承...

  • 1.2数据抽象

    数据类型是一组值和对值的一组操作的集合,到目前为止,我们已经详细讨论Java的原始数据类型:例如,原始数据类型in...

  • 数据库基础教程

    1 数据库简介 1.1 数据库定义 1.2 常用数据库以及区别 1.2.1 mysql 1.2.2 oracle ...

  • day04

    一、SELECT 1.1、作用 获取MySQL中的数据行 1.2、单独使用select 1.2.1 select ...

  • Numpy库(一)- 数组的创建

    1 Numpy预备基础知识: 1.1 Numpy数据类型: ​ 1.2 Numpy数组属性: ​ 1.2.1 各个...

  • HBase - 总结

    一、HBase简介 1.1 定义 1.2 HBase数据模型 1.2.1 HBase逻辑结构 1.2.2 HBas...

  • js 对象的继承

    一、理解 js 对象 1.1 创建对象 法一: 法二: 1.2 属性(property)类型 1.2.1 数据属性...

  • java基础-day26-JSON

    1. JSON 1.1 JSON格式概述 1.2 数据格式 1.2.1 JSON对象 2.2.2 JSON对象数组...

网友评论

      本文标题:1.2 数据抽象 1.2.1

      本文链接:https://www.haomeiwen.com/subject/tvvddktx.html