Java基础13-数组算法

Posted 深海溺心

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java基础13-数组算法相关的知识,希望对你有一定的参考价值。

1.数组的复制

 1 //复制算法,将arr1数组的值复制给arr2数组
 2 import java.util.Arrays;
 3 public class Test1{
 4     public static void main(String[] args){
 5         int[] arr1={88,99,66,55};
 6         int[] arr2=new int[arr1.length];
 7         
 8         for(int i=0;i<arr1.length;i++){
 9             arr2[i]=arr1[i];
10         }
11         System.out.println("数组arr2的值:");    
12         for(int i=0;i<arr1.length;i++){
13             System.out.println(arr2[i]);    
14         }
15         
16                         
17     }
18 }

2.查找算法(搜索)

 1 import java.util.Scanner;
 2 import java.util.Arrays;
 3 public class Test1{
 4     public static void main(String[] args){
 5         Scanner in=new Scanner(System.in);
 6         System.out.println("请输入你要查询的名字:");
 7         String n=in.next();
 8         String[] name={"张三","李四","王二","小明"};
 9         boolean flag=false;//标记
10         
11         for(int i=0;i<name.length;i++){
12             if(n.equals(name[i])){
13                 flag=true;
14                 break;
15             }
16         }
17         if(flag==true){
18             System.out.println("搜到了");
19         }else{
20             System.out.println("该名字不存在");
21         }
22             
23                             
24     }
25 }

3.插入算法

 1 /*插入算法
 2 23,32,57,78,98,100从小到大排列,此时在100的位置插入25,顺序就变了,此时就需要进行判断
 3 */
 4 import java.util.Scanner;
 5 
 6 public class Test1{
 7     public static void main(String[] args){
 8         Scanner in=new Scanner(System.in);
 9         int[] arr={23,32,57,78,98,100};
10         System.out.println("请输入你要插入的数字:");
11         int num=in.nextInt();
12         arr[arr.length-1]=num;
13         for(int i=arr.length-1;i>0;i--){
14             if(arr[i]<arr[i-1]){
15                 int temp=arr[i];
16                 arr[i]=arr[i-1];
17                 arr[i-1]=temp;
18             }else{
19                 break;
20             }
21         }
22         
23         for(int i=0;i<arr.length;i++){
24             System.out.println(arr[i]);
25         }
26         
27     }
28 }

4.冒泡排序(选出老大后,后面的还要来和老大比)

 1 //冒泡排序
 2 import java.util.Arrays;
 3 public class Test1{
 4     public static void main(String[] args){
 5         int[] num={65,23,56,12,88,3,5,13,109};
 6         //从小到大排序
 7         for(int j=0;j<num.length-1;j++){
 8             for(int i=0;i<num.length-1;i++){
 9                 if(num[i]>num[i+1]){
10                     int temp=num[i];
11                     num[i]=num[i+1];
12                     num[i+1]=temp;
13                 }
14             }
15         }
16         
17         for(int i=0;i<num.length;i++){
18             System.out.println(num[i]);
19         }                        
20     }
21 }

5.选择排序(选出老大后,老大就可以休息了,不比了,后面以此类推)  比冒泡排序效率更高

 1 //选择排序
 2 import java.util.Arrays;
 3 public class Test1{
 4     public static void main(String[] args){
 5         //从小到大排序
 6         int[] num={65,23,56,12};
 7         for(int i=0;i<num.length-1;i++){
 8             for(int j=i+1;j<num.length;j++){ //j<4
 9                 if(num[i]>num[j]){
10                     int temp=num[i];
11                     num[i]=num[j];
12                     num[j]=temp;
13                 }
14             }
15         }
16         for(int i=0;i<num.length;i++){
17             System.out.println(num[i]);
18         }
19     }
20 }

 

 

 

以上是关于Java基础13-数组算法的主要内容,如果未能解决你的问题,请参考以下文章

13-02 Java 数组高级算法,Arrays类

Java排序算法 - 堆排序的代码

基础算法java实现数组反转

片段(Java) | 机试题+算法思路+考点+代码解析 2023

Java基础入门五)之方法以及递归算法

小程序基础13:模板