アルゴリズム検査:コピー、反転、配列の検索(線形検索)

アルゴリズム検査:コピー、反転、配列の検索(線形検索)

トピックの説明:
アルゴリズムの検討:コピー、反転、配列の検索(線形検索)

問題解決のアイデア:
1。コピー(配列変数の割り当てとは異なります):
 新しい配列を作成し(長さは元の配列と同じです)、トラバースして新しい要素の要素に値を割り当てる必要があります配列を1つずつ;
2。配列を逆にし(注:新しい配列を作成する代わりに元の配列を反転することです)、
 一時変数導入しますtemp。これは基本的な操作ですが、forループのiの範囲は対応している必要があります。 。インデックスは0から始まります。3
。検索(線形検索):検索多くの方法があります。これが最も愚かな線形検索です
 配列をトラバースし、それが等しいかどうかを判断します。2つの方法があります。プログラムを参照してください。

この質問のJavaコード:

import java.util.Arrays;

/*
 * 算法的考查:数组的复制、反转、查找(线性查找、二分法查找)
 * 
 */
public class ArrayTest2 {
    
    
	public static void main(String[] args) {
    
    
		String[] arr = new String[] {
    
    "hyj", "hxc", "hdh", "wt", "wtl", "yhp"};
		
		//1.数组的复制(区别于数组变量的赋值:arr1 = arr)
		String[] arr1 = new String[arr.length];
		for(int i = 0;i < arr1.length;i++){
    
    
			arr1[i] = arr[i];
		}
		System.out.println();
		//2.数组的反转 (注意:是将原数组反转,而不是新建一个数组)
		String temp;
		for(int i = 0;i <= arr1.length/2-1;i++){
    
    
			temp = arr1[i];
			arr1[i] = arr1[arr1.length-1-i];
			arr1[arr1.length-1-i] = temp;	
		}
		System.out.println(Arrays.toString(arr1)); //将数组输出,也可使用遍历
		
		//3.查找(或搜索)
		//线性查找:
		//线性查找-方法一:
		String dest = "hxc";
		boolean isFlag = true; //用作标识,只有没找到才会输出
		for(int i = 0;i < arr.length;i++){
    
    
			if(dest.equals(arr[i])){
    
    
				System.out.println("哈哈哈,找到你啦,位置为:" + i);
				isFlag = false;
				break;
			}
		}
		if(isFlag){
    
    
			System.out.println("很遗憾,没有找到!");
		}
		System.out.println();
		
		//线性查找-方法二:
		String dest1 = "hx";
		for ( int i = 0; i < arr.length; i++) {
    
    
			if (dest1.equals(arr[i])) {
    
    
				System.out.print("哈哈哈哈哈哈,找到你啦,位置为:" + i);
				
				break;
			}
			if (i == arr.length-1) {
    
      //这里length需要减1
				System.out.print("很遗憾,没有找到!");
			}
		}
		System.out.println();				
	}
}

おすすめ

転載: blog.csdn.net/qq_45555403/article/details/114221936