几个递归练习

1.反向输出字符串

<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> -->1 void  stringReverse(  char  array[] )
2 {
3      if  ( array[ 0 ==   ' \0 '  )
4          return ;
5     stringReverse( array  +   1  );
6     printf(  " %c " , array[ 0 ] );
7 }


2.输出数组

<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> -->1 void  printArray(  int  array[],  int  size )
2 {
3      if ( size  ==   0  )
4          return ;
5     printf(  " %d  " , array[ 0 ] );
6     printArray(  ++ array,  -- size );
7 }


3.查找数组中的最小值

<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --> 1 int  recursiveMinimum(  int  array[],  int  size )
 2 {
 3      if  ( size  ==   1  )
 4          return  array[ 0 ];
 5
 6      if  ( array[ size  -   1  ]  <  recursiveMinimum( array, size - 1  ) )
 7          return  array[ size  -   1  ];
 8      else
 9          return  recursiveMinimum( array, size - 1  );
10 }


4.选择排序
选择排序:从数组中查找最小的值,将其同数组中的第一个元素交换,然后从第二个元素开始查找最小的值同数组第二个元素交换,这样重复一直到只剩最后一个元素为止。

<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --> 1 void  selectionSort(  int  list[],  int  n,  int  start)
 2 {
 3      {   
 4          int  i;   
 5          int  p  =  start;   
 6          if  ( start  <  n  -   1  )   
 7          {       
 8              for  ( i  =  start; i  <  n; i ++  )   
 9              {
10                  if  ( list[i]  <  list[p] )   
11                     p  =  i;  
12             }

13             i  =  list[ p ];   
14             list [ p ]  =  list[ start ];   
15             list[ start ]  =  i;   
16             selectionSort( list , n , start + 1  );   
17         }
   
18     }
   
19 }

5.线性查找

<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --> 1 int  linerSearch( int  a[],  int  key,  int  size)
 2 {  
 3      if  ( size  >   0  )  
 4      {  
 5          if  ( a[ size  -   1  ]  ==  key )
 6              return   size  -   1 // 反方向,返回下标  
 7          return  linerSearch( a, key, size  -   1  );  
 8     }
    
 9     
10      return   - 1 // 未找到  
11 }
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值