问答题 如何用递归算法判断一个数组是否是递增
【正确答案】
【答案解析】判断一个数组中的元素是否递增,最容易想到的解决办法就是遍历数组,然后判断相邻的两个数组元素的大小是否满足下标小的元素其值也越小。如果不满足,则不是递增数组。
本题要求使用递归的算法,设数组为a,则递归数组满足以下条件:
1)如果数组长度为1,则该数组为递增,返回true。
2)若果数组长度为n(n≥2),则先比较最后两个元素是否递增,如果最后两个元素递增,则再递归比较除去最后一个元素的前n-1个元素是否递增。
具体实现代码如下:
#include<stdio.h>
bool isIncrease(int a[],int n)
{
if(n==1)
return true;
return (a[n-1]>=a[n-2])&&isIncrease(a,n-1);
}
int main()
{
int array[]={1,2,3,3,4,5);
int len=sizeof(array)/sizeof(array[0]);
if(isIncrease(array,len))
printf("数组{1,2,3,3,4,5}是递增数组/n");
else
printf("数组{1,2,3,3,4,5}不是递增数组/n");
return 0;
}
程序输出结果:
1,2,3,3,4,5是递增数组