1.递归概念
程序调用自身的编程技巧称为递归。将大规模的问题变成小规模的问题,问题不变,规模变小。
2.两个前提
终止条件——当一定条件满足时,函数返回特定值,不再递归调用
在现实生活中的购物过程,购物者需要先到商场,找到指定的产品柜台下,查看产品实体以及标价信息,如果产品合适,就将该产品放到购物车中,到收款处付款结算。电子商务网站通过虚拟网页的形式在计算机上摸拟了整个过程,首先电子商务设计人员将产品信息分类显示在网页上,用户查看网页上的产品信息,当用户看到了中意的产品后,可以将该产品添加到购物车,最后使用网上支付工具进行结算,而货物将由公司通过快递等方式发送给购物者
递归调用——函数调用自身,其输入值更接近终止条件
3.二分查找的递归实例
/**
* 递归实现二分查找
* @param arr
* @param left
* @param right
* @param val
* @return
*/
private static int binarySearch(int[] arr, int left, int right, int val) {
if (val < arr[left] || val > arr[right] || left > right) {
return -1;
}
int middle = (left + right)/2;
if(val < arr[middle]){
return binarySearch (arr,0,middle-1,val);
}
if(val > arr[middle]){
return binarySearch (arr,middle+1,right,val);
}else{
return middle;
}
}










