递归

一、递归的思想:

就是把规模大的问题转化为规模小的相似的子问题来解决。在函数实现时,因为解决大问题的方法和解决小问题的方法往往是同一个方法,所以就产生了函数调用它自身的情况。另外这个解决问题的函数必须有明显的结束条件,这样就不会产生无限递归的情况了。

二、递归的条件:

1、可以通过递归调用来缩小问题规模,且新问题与原问题有着相同的形式。(自身调用)

2、存在一种简单情境,可以使递归在简单情境下退出。(递归出口)

三、递归的要素:

1、一定有一种可以退出程序的情况;

2、总是在尝试将一个问题化简到更小的规模

3、父问题与子问题不能有重叠的部分

四、递归算法的格式:

func( mode){

    if(endCondition){      //递归出口          end;

    }else{

         func(mode_small)  //调用本身,递归    }

}

五、递归的排序:

归并排序也是递归的典型应用,其思想:将序列分为若干有序序列(开始为单个记录),两个相邻有序的序列合并成一个有序的序列,以此类推,直到整个序列有序。

posted @ 2021-10-20 23:41  光明^^龙  阅读(101)  评论(0编辑  收藏  举报