1:求解数组中的最值:
class ArrayTest{
public static void main(String[] args)
{
int []arr=new int[]{2,3,12,11,10,6};
print(arr);
System.out.print("\n数组中的最大值为:"+getMax(arr));
}
//进行打印数组中元素
public static void print(int[] arr)
{
System.out.println("数组中的元素如下:");
for(int i=0;i
System.out.print(arr[i]+",");
}
//进行输出数组中的最大值
public static int getMax(int []arr){
int maxIndex=0;
for(int i=1;i
if(arr[i]>arr[maxIndex])
maxIndex=i;
return arr[maxIndex];
}
}
2对数组中的元素进行排序;
class ArraySort{
public static void main(String[] args)
{
int[] arr={1,2,9,3,6,7,12,10};
System.out.println("排序前:");
print(arr);
paixu(arr);
System.out.println();
System.out.print("排序后:");
print(arr);
}
//选择排序函数
public static void selectSort(int[] arr)
{
for(int i=0;i
{
for(int j=i;j
{
if(arr[i]>arr[j])
{
int temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
}
//冒泡排序函数
public static void maoPao(int []arr)
{
for(int i=0;i
{
for(int j=0;j
{
if(arr[j+1]
{
int temp=arr[j+1];
arr[j+1]=arr[j];
arr[j]=temp;
}
}
}
}
//富有高效率的排序方式
public static void paixu(int []arr)
{
int index;
for(int i=0;i
{
index=i;
for(int j=0;j
{
if(arr[index]
index=j;
}
//如果Index的值与开始相比,变化了,那么进行交换
if(index!=i)
{
int temp=arr[arr.length-i-1];
arr[arr.length-i-1]=arr[index];
arr[index]=temp;
}
}
}
public static void print(int []arr)
{
System.out.print("[");
for(int i=0;i
{
if(i==arr.length-1)
{
System.out.print(arr[i]+"]");
break;
}
System.out.print(arr[i]+",");
}
}
}
3:折半查找:
class ArrayFind{
public static void main(String []args)
{
int[] arr={1,2,3,4,8,10,12,15};
int val=19;
print(arr);
int index=halfFind(arr,val);
if(index!=-1)
{
System.out.print(val+"在数组中存在位置为:"+index);
return;
}
System.out.print(val+"在数组中不存在!");
}
//折半查找函数
public static int halfFind(int []arr,int val)
{
//进行初始化首尾的值
int end=arr.length-1,begin=0;
while(end>=begin)
{
//计算出中间的位置的值
int half=(end+begin)/2;
//如果中间的值比所要查找的值大
if(arr[half]>val)
begin=half+1;
else if(arr[half] //如果中间的值比所要查找的值小
end=half-1;
else
{
return half; //返回所在值的位置
}
}
return -1; //返回-1,代表这个值不存在
}
//打印函数
public static void print(int[] arr)
{
for(int i=0;i
System.out.print(arr[i]+",");
System.out.println();
}
}
3:数组进行作为一个容器进行操作:
进制转换:
class JinZhi{
public static void main(String[] args)
{
transForm(100);
}
public static void transForm(int val)
{
char []arr={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
char[] save=new char[8];
int i=0;
while(val!=0)
{
save[i]=arr[val&15];
val=val>>>4;
i++;
}
System.out.print(val+"的16进制数为:0x");
for(;i>=0;i--)
{
System.out.print(save[i]);
}
}
}