<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">一.函数:</span><span style="font-family: Arial, Helvetica, sans-serif; font-size: 18px; background-color: rgb(255, 255, 255);">函数是类中一段独立的小程序,又称方法,可<span style="color:#ff0000;">不定数参</span>。</span>
函数重载:Java中允许类中有重名函数,但参数类型或者参数个数不同,与返回值无关。
<span style="font-size:18px;"> public static int add(int... args)
{
int addition=0;
for(int i=0; i<args.length; i++)</span>
<span style="font-size:18px;"> addition=args[i]+addition;
return addition;
}
public static double add(double... args)
{
double addition=0;
for(int i=0; i<args.length; i++)
addition=args[i]+addition;
return addition;
}</span>
ps(.length是取变量长度。二维数组arr[][]的行和列分别是arr.length和arr[0].length)
二.指针(我们说的Java没指针,是指没有指针显式操作,比如c里面的&取指针,但其指针是存在的)
三.数组
定义有二种方式:int[ ] arr=new int[ ];
int[ ] arr={1,2,3,4,5,6}定义加初始化
二维数组;int [][] arr=new int[4] [];(可不指定长度每行不等长)
四.小应用(排序和查找)
排序先讲二种最普通的
1.选择排序(以升序为例,先选最小的放在第一个位置,第二小放在第二个位置....)
<span style="font-size:14px;">public static int[] selectSort(int[] arr)
{
int temp;
for(int i=0; i<arr.length; i++)
{
for(int j=i;j<arr.length;j++)
{
if(arr[i]>arr[j])
{
temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
return arr;
}</span>
2.冒泡排序(每一次两两比较,以升序为例,两两比较大的放后面,一轮下来最大值在最后)
public static int[] bubbleSort(int[] arr)
{
int temp;
for(int i=0; i<arr.length; i++)
{
for(int j=0;j<arr.length-i-1;j++)
{
if(arr[j]>arr[j+1])
{
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
return arr;
}
3.对半查找(以排好序的,考虑有多个相同的情况)
<span style="font-size:18px;">public static int[] halfFind(int[] arr, int x)
{
int boundMin,boundMax,index;
boundMin=0;
boundMax=arr.length-1;
index=(boundMin+boundMax)/2;
int err[]={-1};
while(boundMax>boundMin)
{
if((x>arr[boundMax])||(x<arr[boundMin]))
index=-1;
if(arr[index]>x)
{
//index+1或-1缩小范围
boundMax=index-1;
index=(boundMin+boundMax)/2;
}
if(arr[index]<x)
{
boundMin=index+1;
index=(boundMin+boundMax)/2;
}
if(arr[index]==x)
{
int i=0;</span>
<span style="font-size:18px;"><span style="white-space:pre"> </span>while(arr[index-1]==x)
{
index=index-1;
}
while(arr[index]==x)
{
i=i+1;
index=index+1;
}
int arrIndex[]=new int[i];
for(int j=0; j<i;j++)
arrIndex[j]=index-i+j;
return arrIndex;
<span style="white-space:pre"> </span>//针对重复的
}
}
return err;
}</span>
4.数组的转置
public static int[][] transp(int[][] arr)
{
int row=arr.length;
int col=arr[0].length;
int[][] rearr=new int[col][row];
for(int i=0;i<col;i++)
{
for(int j=0;j<row;j++)
rearr[i][j]=arr[j][i];
}
return rearr;
}
public static void outarr(int[][] arr)
{
int row=arr.length;
int col=arr[0].length;
for(int i=0;i<row;i++)
{
for(int j=0;j<col;j++)
{
System.out.print(arr[i][j]+" ");
}
System.out.println();
}
System.out.println();
}