刚开始做网站要传数据库吗,合肥宣传网站,建设一个网站需要多少时间,使用wordpress在ec2上建网站递归实现#xff1a; 自己写的递归#xff1a;多一个赋值操作#xff0c;虽然可以得到正确的结果。但是比较难以理解。 问题#xff1a;没有深刻理解递归返回值。return会在递归调用到最后#xff0c;在递归结束的地方#xff0c;会将返回值一层一层返回给方法#xff0…递归实现 自己写的递归多一个赋值操作虽然可以得到正确的结果。但是比较难以理解。 问题没有深刻理解递归返回值。return会在递归调用到最后在递归结束的地方会将返回值一层一层返回给方法直到返回最后一层也就是方法不进行递归演算的动作时。 总结首先要记住递归有递归头和递归体递归头可能有多重情况。递归体也可能有多重情况。 public static int binarySearch(int[] arr,int n){int low0;int higharr.length-1;return binarySearch2(arr,low,high,n);}public static int binarySearch2(int[] arr,int low,int high,int n){int z(lowhigh)/2;int i-1;if(lowhigh){if(arr[z]n ){return iz;}else{if(arr[z]n){highz-1;}else if(arr[z]n){lowz1;}return binarySearch2(arr,low,high,n);}}return i;}网友的递归 没有找到对应值递归结束会走对应的递归头 找到对应值递归结束走对应递归头 public static int binarySearch(int[] arr,int low,int high,int n){int mid(lowhigh)/2;if(lowhigh){return -1;}if(arr[mid]n){return mid;}else if(arr[mid]n){return binarySearch(arr,low,mid-1,n);}else{return binarySearch(arr,mid1,high,n);}}非递归实现 总结第一次写lowhigh/2的地方没有加括号结果导致数组索引越界:3,正确的写法(lowhigh)/2 public static int binarySearch(int[] a,int low,int high,int n){while(lowhigh){int mid(lowhigh)/2;if(a[mid]n){return mid;}else if(a[mid]n){highmid-1;}else{lowmid1;}}return -1;
}转载于:https://www.cnblogs.com/huiandong/p/10983205.html