常见算法
1.求数组的最大值、最小值、平均值、总和
/*
算法的考察:求数值型数组中元素的最大值、最小值、平均数、总和
定义一个int型的一维数组,包含10个元素,分别赋一些随机整数
然后求出所有元素的最大值,最小值,和值,平均值,并输出出来
要求:所有随机数都是两位数
[10,99]
公式:(int)(Math.random()*(99-10+1)+10)
*/
public static void main(String[] args) {
int[] arr = new int[10];
for (int i = 0; i < arr.length; i++) {
arr[i] = (int) (Math.random() * (99 - 10 + 1) + 10);
}
//遍历
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + "\t");
}
System.out.println();
//求数组元素的最大值
int maxValue = arr[0];
for (int i = 1; i < arr.length; i++) {
if (maxValue < arr[i]) {
maxValue = arr[i];
}
}
System.out.println("最大值为:" + maxValue);
//求数组元素的最小值
int minValue = arr[0];
for (int i = 1; i < arr.length; i++) {
if (minValue > arr[i]) {
minValue = arr[i];
}
}
System.out.println("最小值为:" + maxValue);
//求数组元素的总和
int sum=0;
for(int i=0;i<arr.length;i++)
{
sum+=arr[i];
}
System.out.println("总和为:"+sum);
2.数组的反转
//数组的反转
String[] arr1=new String[]{"JJ","DD","MM","BB","GG","AA"};
for(int i=0;i<arr.length/2;i++)
{
String temp=arr1[i];
arr1[i]=arr1[arr1.length-i-1];
arr1[arr1.length-i-1]=temp;
}
for(int i=0;i<arr1.length;i++)
{
System.out.print(arr1[i]+"\t");
}
System.out.println();
3.查找(线性查找、二分查找??)
//线性查找
String dest="BB";
boolean isFlag=true;
for(int j=0;j<arr.length;j++)
{
if(dest.equals(arr1[j]))
{
System.out.println("找到了指定的元素,位置为"+j);
isFlag=false;
break;
}
}
if(isFlag)
{
System.out.println("很遗憾,没有找到哦!");
}
//二分查找:
//前提:所要查找的数组必须有序
System.out.println("----------------");
int[] arr2=new int[]{-98,-34,2,34,54,66,79,105,210,333};
int dest1=-34;
int head=0;//初始的首索引
int end=arr2.length-1;//初始的末索引
boolean isFlag1=true;
while(head<=end)
{
int middle=(head+end)/2;
if (dest1 == arr2[middle]) {
System.out.println("找到了指定的元素,位置为:"+middle);
isFlag1=false;
break;
}
else if(dest1<arr2[middle])
{
end=middle-1;
}else//dest1>arr2[middle]
{
head=middle+1;
}
}
if(isFlag1)
{
System.out.println("很遗憾,没有找到的啦!");
}
排序算法
冒泡排序
//冒泡排序
int[] arr3=new int[]{43,32,76,-98,0,64,33,-21,32,99};
for(int i=0;i<arr3.length-1;i++)
{
for(int j=0;j<arr3.length-1-i;j++)
{
if(arr3[j]>arr3[j+1])
{
int temp=arr3[j];
arr3[j]=arr3[j+1];
arr3[j+1]=temp;
}
}
}
for(int i=0;i<arr3.length;i++)
{
System.out.print(arr3[i]+" ");
}
快速排序(思想)
|