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代码

doubledistance(Pointa,Pointb){

doubledx=a.x-b.x;

doubledy=a.y-b.y;

returnMath.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代码

classPoint{

doublex,y;

Point(){

x=Math.random();

y=Math.random();

}

Point(doublex,doubley){

this.x=x;

this.y=y;

}

doubler(){

returnMath.sqrt(x*x+y*y);

}

doubletheta(){

returnMath.atan2(y,x);

}

doubledistance(Pointp){

doubledx=x-p.x;

doubledy=y-p.y;

returnMath.sqrt(dx*dx+dy*dy);

}

publicStringtoString(){

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代码

publicclassPrintStats{

publicstaticvoidmain(String[]args){

intN=Integer.parseInt(args[0]);

doublem=0.0,s=0.0;

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

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

doubled=(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);

}

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值