一》求数组最大值:
第一种方法:
class ArrayDemo
{
//获取最大值
public static int arrayMax(int[] arr)
{
//int maxArr = 0;
int maxArr = arr[0]; //改后;少比一次,提高效率
for(int i=1;i<arr.length;i++)
{
if(arr[i]>maxArr)
maxArr = arr[i];
}
return maxArr;
}
public static void main(String[] args)
{
int[] arr = new int[]{11,2,3,14};
int max = arrayMax(arr);
System.out.println(max);
}
}
第二种方法:
根据数组角标,找出最大值:
将max 当成角标,去比较,找出最大的角标元素,放回该元素;
public int getMax(int[] arr)
{
int max = 0;
for(int x=1;x<arr.length;x++)
{
if(arr[x]>arr[max])
max = x;
}
return arr[max];
}
第三种方法:
利用java提供的函数:
Math.max(); 最大值
Math.min(); 最小值
int[] arr = new int[]{0,11,3,4,5,};
int max = 0;
for(int i=0;i<arr.length;i++)
{
max = Math.max(max, arr[i]);
}
System.out.println("最大值:" + max);
int min = 0;
for(int i=0;i<arr.length;i++)
{
min = Math.min(min, arr[i]);
}
System.out.println("最小值:" + min);
二》数组排序:
选择排序
public static void arrPx(int[] arr)
{
for(int i=0;i<arr.length-1;i++) //-1 的原因:所有元素都比较完,最后 元素可定时最大数,不用在比较; 少比较一次,提高效率
{ //自己和自己比 没有意义; 也可以不-1
for(int j=i+1;j<arr.length;j++)
{
if(arr[i]>arr[j])
{
int m = arr[i];
arr[i] = arr[j];
arr[j] = m;
}
}
}
}
冒泡排序:
public static void maoPao(int[] arr)
{
for(int i=0;i<arr.length-1;i++)
{
for(int j=0;j<arr.length-i-1;j++)//-x:让每次比较的元素减少;-1: 避免角标越界;
{
if(arr[j]>arr[j+1])
{
int m = arr[j];
arr[j] = arr[j+1];
arr[j+1] = m;
}
}
}
}