所在的位置: 数据结构 >> 概述 >> 一基础Fundamentals

一基础Fundamentals

1基础编程模型Java四类八种类型

整型:byte,short,int,long

浮点型:float,double

布尔型:boolean

字符型:char

publicstaticintbinarySearch(int[]a,intkey){

intleft=0;

intright=a.length-1;

while(left=right){

intmid=left+((right-left)1);

if(a[mid]key){

right=mid-1;

}

elseif(a[mid]key){

left=mid+1;

}

else{

returnmid;

}

}

return-1;

}

数组

颠倒数组中元素顺序

//注意n值、for循环边界、以及循环体内n-1-i

intn=a.length;

for(inti=0;in/2;i++){

inttemp=a[i];

a[i]=a[n-1-i];

a[i-1-i]=temp;

}

矩阵相乘

//假设a[n][n],b[n][n],c[n][n]

intn=a.length;

for(inti=0;in;i++){

for(intj=0;jn;j++){

for(intk=0;kn;k++){

c[i][j]+=a[i][k]*b[k][j];

}

}

}

静态方法

判断一个数是否为素数

一个数若可以进行因数分解,那么分解时得到的两个数一定是一个小于等于sqrt(n),一个大于等于sqrt(n),据此,代码中不需要遍历到n-1,遍历到sqrt(n)即可,因为若sqrt(n)左侧找不到约数,那么右侧也一定找不到约数。

publicstaticbooleanisPrime(intn){

//小于2直接返回false

if(n2){

returnfalse;

}

for(inti=0;i*i=n;i++){

if(n%i==0){

returnfalse;

}else{

returntrue;

}

}

}

计算平方根(牛顿迭代法)牛顿开方法的算法及其原理

publicstaticdoublesqrt(doublec){

if(c0){

returnDouble.NaN;

}

doubleerr=1e-15;

doublet=c;

//1-c/t^2err两边同乘t

while(Math.abs(t-c/t)err*t){

t=(t+c/t)/2;

}

returnt;

}

方法的性质——参数按值传递:方法中改变一个参数变量的值对调用者没有影响,也意味着数组参数将是原数组别名——方法中使用的参数变量能引用调用者的数组并改变其内容。

递归:

递归三个重要性质:

递归总有一个最简单情况——方法第一条语句总是一个包含return的条件语句。

递归调用总是尝试解决一个规模更小的子问题,这样递归才能收敛到最简单的情况。

递归调用的父问题和尝试解决的子问题之间不应该有交集。

输入输出

重定向和管道:

//模型:RandomSeq-标准输出-data.txt

javaRandomSeq.0data.txt

//模型:data.txt-标准输入-Average

javaAveragedata.txt

//模型:RandomSeq-标准输出-标准输入-Average

javaRandomSeq.0

javaAverage

QA

如何将double变量初始化为无穷大?Double.POSITIVE_INFINITY(1.0/0.0)和Double.NEGTIVE_INFINITY(-1.0/0.0)

Java表达式1/0和1.0/0.0值分别是?第一个表达式产生一个运行时除零异常(会终止程序,因为该值未定义);第二个表达式值是Infinity(无穷大,JDK内部定义1.0/0.0为正无穷大,-1.0/0.0为负无穷大)。

负数除法和余数的结果是什么?表达式a/b的商会向0取整;a%b的余数定义为(a/b)*b+a%b恒等于a。例如-14/3和14/3的商都是-4,但-14%3是-2,而14%-3是2。

2数据抽象使用抽象数据类型

继承的方法Java中的所有数据类型都会继承toString()方法来返回String表示的该类型的值。Java会在用+运算符将任意数据类型的值和String值连接时调用该方法。该方法的默认实现并不实用(它会返回用字符串表示的该数据类型值的内存地址),因此常常会提供实现来重载默认实现,并在此时在API中加上toString()方法。此类方法还有equals()、







































白癜风多长时间能治愈
北京白癜风专科医院怎么走



转载请注明:http://www.92nongye.com/gaishu/204619912.html