给定一个包含任意顺序整数的整数数组Arr[]。目标是使用数组上的递归搜索找到数组中存在的输入整数val。
如果在输入数组Arr[]中找不到val,则返回-1。如果在Arr[]中找到,则打印val的索引。
输入 −Arr[]={11,43,24,50,93,26,78}val=26
输出 -26在索引5处找到
说明 -
Elements in the array start from index 0 to index=array length -1. First index=0 last index=6 : 11 != 26, 78 != 26 → 0+1 , 6-1 First index=1 last index=5 : 43 != 26, 26 = 26 return 5 26 is present at index 5.输入 −Arr[]={11,43,24,50,93,26,78}val=66
输出 -66不存在
说明-
Elements in the array start from index 0 to index=array length -1. First index=0 last index=6 : 11 != 66, 78 != 66 → 0+1 , 6-1 First index=1 last index=5 : 66 != 26, 66 != 26 → 1+1 , 5-1 First index=2 last index=4 : 24 != 66, 93 != 66 → 2+1 , 4-1 First index=3 last index=3 : 50 != 26, 50 != 26 → 3+1 , 3-1 First index=3 last index=2 3>2 end 66 not found.在这种方法中,我们将从两端线性地遍历数组。将输入值与两端的元素进行比较。如果找到,则返回索引,否则递归检查下一个元素,其中firstindex=prevfirstindex+1和lastindex=prevlastindex-1。如果第一个索引>最后一个索引,则找不到元素。
取具有整数元素的输入数组Ar[]。
将要搜索的元素作为val。
函数searchRec(intarr[],intstart,intend,intnum)接受一个数组、第一个和最后一个索引以及要搜索的值num,如果找到则返回索引。
取变量结果为-99。
如果arr[start]==num然后将结果设置为开始
如果arr[end]==num则将结果设置为end
如果(开始>结束)然后设置结果=-1。遍历整个数组
如果结果的值不是-99,则返回结果,否则使用searchRec(arr,start+1,end-1,num)递归搜索
内部主要检查返回值并相应地打印结果
如果我们运行上面的代码,它将生成以下输出
56 在索引处找到 3