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);   

    }   

}  


原文地址:https://www.cnblogs.com/wuyida/p/6301159.html