算法的考查:数组的复制、反转、查找(线性查找)

算法的考查:数组的复制、反转、查找(线性查找)

题目描述:
算法的考查:数组的复制、反转、查找(线性查找)

解题思路:
1.复制(与数组变量的赋值区分开):
 需要新建一个数组(长度与原数组相同),然后遍历并对新数组中的元素挨个赋值;
2.数组的反转 (注意:是将原数组反转,而不是新建一个数组)
 引入临时变量temp即可,这是基本操作,不过for循环里i的范围要注意对应,索引是从0开始的
3.查找(线性查找):查找的方法很多,这里讲最笨的线性查找
 对数组进行遍历,然后判断是否相等,有两种方法,见程序

本题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
今日推荐