1. 程式人生 > >Java基礎13-陣列演算法

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 }