第五章JAVA数组.docx
《第五章JAVA数组.docx》由会员分享,可在线阅读,更多相关《第五章JAVA数组.docx(14页珍藏版)》请在冰豆网上搜索。
第五章JAVA数组
C和C++可以分配在栈上
Java是引用类型,分配在堆上
Sizeof(a)/a[0]算车数组长度
publicclassTestArray{
publicstaticvoidmain(String[]args){
int[]a={2,4,6,7,3,5,1,9,8};
/*
//顺序打印数组
for(inti=0;iSystem.out.print(a[i]+"");
}
*/
for(inti=0;iSystem.out.println(args[i]);//顺序打印命令行参数数组
}
}
}
publicclassTestArgs{
publicstaticvoidmain(String[]args){
/*
for(inti=0;iSystem.out.println(args[i]);
}
System.out.println(
"Usage:
javaTest\"n1\"\"op\"\"n2\"");
*/
if(args.length<3){
System.out.println(
"Usage:
javaTest\"n1\"\"op\"\"n2\"");
System.exit(-1);
}
doubled1=Double.parseDouble(args[0]);
doubled2=Double.parseDouble(args[2]);
doubled=0;
if(args[1].equals("+"))d=d1+d2;
elseif(args[1].equals("-"))d=d1-d2;
elseif(args[1].equals("x"))d=d1*d2;
elseif(args[1].equals("/"))d=d1/d2;
else{
System.out.println("Erroroperator!
");
System.exit(-1);
}
System.out.println(d);
}
}
选择排序
效率比第一个高一些
publicclassNumSort{
publicstaticvoidmain(String[]args){
int[]a=newint[args.length];//定义一个数组,按照命令参数输入个数
for(inti=0;ia[i]=Integer.parseInt(args[i]);
}
print(a);
selectionSort(a);
print(a);
}
//排序
privatestaticvoidselectionSort(int[]a){
intk,temp;
for(inti=0;ik=i;
for(intj=k+1;jif(a[j]k=j;
}
}
if(k!
=i){
temp=a[i];
a[i]=a[k];
a[k]=temp;
}
}
}
//打印数组
privatestaticvoidprint(int[]a){
for(inti=0;iSystem.out.print(a[i]+"");
}
System.out.println();
}
}
查找算法
publicclassTestSearch{
publicstaticvoidmain(String[]args){
inta[]={1,3,6,8,9,10,12,18,20,34};
inti=12;
//System.out.println(search(a,i));
System.out.println(binarySearch(a,i));
}
publicstaticintsearch(int[]a,intnum){
for(inti=0;iif(a[i]==num)returni;
}
return-1;
}
publicstaticintbinarySearch(int[]a,intnum){
if(a.length==0)return-1;
intstartPos=0;
intendPos=a.length-1;
intm=(startPos+endPos)/2;
while(startPos<=endPos){
if(num==a[m])returnm;
if(num>a[m]){
startPos=m+1;
}
if(numendPos=m-1;
}
m=(startPos+endPos)/2;
}
return-1;
}
}
四维数组可以用在3D的图形转换