java基础_数组常用算法

 求数组最大值代码如下

package java_test;
/*求数组的最大值
 * */
class Sdent{
	public void inputMax(int [] a){
		int max=a[0];//max的值让它为数组的第一个数的值
		for(int i=0;i<a.length;i++){
			if(max<a[i]){
				max=a[i];//谁比他大,谁就当max
			}
		}
		System.out.println(max);
	}
}
public class A5_7 {
	public static void main(String[] args){
		int [] a={19,12,28,65,1,78,99};
		Sdent nn=new Sdent();
		nn.inputMax(a);



	}
}

=============================================================

1.数组的复制,把数组A的值复制给数组B

public class Change {
    public static void main(String[] args){
        int [] arrA={1,2,3,4,5,6,7,8};
        int [] arrB= new int[arrA.length];
        for(int i=0;i<arrA.length;i++){
            arrB[i]=arrA[i];    
        }
        for(int i=0;i<arrB.length;i++){
            System.out.println(arrB[i]);
        }
    }
}

2.查找算法(搜索)

package java_test;
import java.util.*;
public class Search {
	public static void main(String[] args){
		Scanner in =new Scanner(System.in);
		System.out.println("请输入你要查找的学生姓名");
		String name=in.next();
		String [] arr={"张三","李四","王二","麻子","小七"};
		boolean flag=false;
		for(int i=0;i<arr.length;i++){
			if(arr[i].equals(name)){
				flag=true;
				break;
			}			
		}
		if(flag){
			System.out.println("找到了");
		}else{
			System.out.println("没有这个学院存在");
		}
	}
}

3.插入算法

package java_test;
import java.util.*;
public class arrayTest {
	public static void main(String args[]) {
		Scanner in = new Scanner(System.in);
		int [] arr={1,3,5,7,9,77};//现在是按照从小到大生序排列的
		System.out.println("请输入要插入的值");
		int num=in.nextInt();
		arr[arr.length-1]=num;//给数组最后一个数组附上我们输入的值
		for(int i=arr.length-1;i>0;i--){
			if(arr[i]<arr[i-1]){
				int t=arr[i];	 /*这三句代码交换位置	*/	
				arr[i]=arr[i-1];
				arr[i-1]=t;
			}else{
				break;//第一次循环也就是输入的值和数组倒数第二个值比,即a[5]和a[4]比,如果比他大,if不成了,直接break跳出for循环
			}
		}
		for(int i=0;i<arr.length;i++){
			System.out.println(arr[i]);
		}
	}
}

  

  

4.冒泡排序

挨着的两个两两相比,比arr.length-1次,选出一个最大(小)的值,然后选老二,选arr.length-1次

/*冒泡算法,从小到大排序
 * */
public class arrayTest {
	public static void main(String[] args){
		int [] a= {18,29,38,27,7,12,81,3};//数组长度a.length 是8
		for(int i=0;i<a.length-1;i++){//这是外层循环要循环length-1次才能完事
			for(int j=0;j<a.length-1;j++){//这层循环每次把最大的选出来
				if(a[j]>a[j+1]){
					int t=a[j];
					a[j]=a[j+1];
					a[j+1]=t;
				}
			}
		}
		for(int i=0;i<a.length;i++){
			System.out.println(a[i]);
		}

	}
}

  

5.选择排序

/*选择排序
 * */
public class arrayChooseTest {
	public static void main(String[] args){
		int a[]={87,38,6,72,17,26,77,56};
		for(int i=0;i<a.length-1;i++){
			for(int j=i+1;j<a.length;j++){
				if(a[i]>a[j]){
					int t=a[i];
					a[i]=a[j];
					a[j]=t;
				}
			}
		}
		for(int i=0;i<a.length;i++){
			System.out.println(a[i]);
		}
		
	}
}

  

原文地址:https://www.cnblogs.com/youning/p/6738984.html