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]);
}
}
}
浙公网安备 33010602011771号