• java算法:构建块


    java算法:构建块

    java中用来存储和处理信息的主要的低级构造。使用java的类来描述要处理的信息,定义要处理它们的方法,并构建能实际存储这些数据的对象。我们所有的数据结构由对象和指向对象的指针构成。

    我们书写的程序就是要处理我们所生活的世界和自然语言信息,在计算机中要为这些信息构建基本块--数字或字母提供内嵌支持。在java中,基本的数据类型构建起来有:booleancharbyteshortintlongfloatdouble

    定义:数据类型是值集合和对那些值进行的一套操作。

    例一:每个java程序就是一种数据类型,值集合和相关操作(方法)的列表。

    如:处理平面上的点时,可以这样定义:class Point{double x; double y;}

    实例化对象:

    Point a = new Point();

    Point b = new Point();

    并对ab赋值:a.x = 1.0; a.y = 1.0; b.x = 4.0; b.y = 5.0;

    即:a代表点(1.0,1.0) b代表点(4.0,5.0);

    例二:方法定义

    ab的距离:

    Java代码

    double distance(Point a, Point b){   

        double dx = a.x - b.x;   

        double dy = a.y - b.y;   

        return Math.sqrt(dx * dx + dy * dy);   

    }  

    double distance(Point a, Point b){

           double dx = a.x - b.x;

           double dy = a.y - b.y;

           return Math.sqrt(dx * dx + dy * dy);

    }

    使用java的类机制来定义数据类型。

    例三:Point类的实现:

    Java代码

    class Point{   

        double x,y;   

        Point(){   

            x = Math.random();   

            y = Math.random();   

        }   

        Point(double x, double y){   

            this.x = x;   

            this.y = y;   

        }   

        double r(){   

            return Math.sqrt(x * x + y * y);   

        }   

        double theta(){   

            return Math.atan2(y , x);   

        }   

        double distance(Point p){   

            double dx = x - p.x;   

            double dy = y - p.y;   

            return Math.sqrt(dx * dx + dy * dy);   

        }   

        public String toString(){   

            return "(" + x + " , " + y + ")";   

        }   

    }  

    class Point{

           double x,y;

           Point(){

                  x = Math.random();

                  y = Math.random();

           }

           Point(double x, double y){

                  this.x = x;

                  this.y = y;

           }

           double r(){

                  return Math.sqrt(x * x + y * y);

           }

           double theta(){

                  return Math.atan2(y , x);

           }

           double distance(Point p){

                  double dx = x - p.x;

                  double dy = y - p.y;

                  return Math.sqrt(dx * dx + dy * dy);

           }

           public String toString(){

                  return "(" + x + " , " + y + ")";

           }

    }

    例四:随机数序列统计,计算一长串随机数的均值和标准方差。

    Java代码

    public class PrintStats {   

        public static void main(String[] args) {   

            int N = Integer.parseInt(args[0]);   

            double m = 0.0, s = 0.0;   

            for(int i = 0; i < N; i++){   

                int x = (int)(Math.random() * 10000);   

                double d = (double) x;   

                m += d/N; s+= (d * d) /N;   

            }   

            s = Math.sqrt(s - m * m);   

            System.out.println("avg.:" + m);   

            System.out.println("std.dev. :" + s);   

        }   

    }  


  • 相关阅读:
    Hihocoder-小Hi的烦恼
    Python包下载与离线安装
    Shell输出颜色设置
    MySQL主从配置
    MySQL初始化与用户配置
    [转]常用 GDB 命令中文速览
    搭建github静态博客
    树莓派上手
    vim安装与配置
    数组,看了你就懂了!
  • 原文地址:https://www.cnblogs.com/wuyida/p/6301159.html
Copyright © 2020-2023  润新知