开发者社区> 问答> 正文

如何用递归算法判断一个数组是否是递增

如何用递归算法判断一个数组是否是递增

展开
收起
知与谁同 2018-07-22 14:03:26 1621 0
2 条回答
写回答
取消 提交回答
  • 胜天半子
    判断第二个数是否大于第一个数把
    2019-07-17 22:55:07
    赞同 展开评论 打赏
  • Nothing for nothing.
    如果中间有相等 3,2,1,1,1,1, 0 ,这不算降序,算无序了。。。
    我重新优化了一下,虽改了一点点,但效率提高了很多;
    #include "stdio.h"
    int order(int dat[ ],int n)
    //升序就输出return 1,降序输出-1,乱序输出0
    {
    int t=dat[1]-dat[0];
    int r=t>0?1:(t<0?-1:0);
    if (r==0||n<=2) // r==0 时,不管N多少,都不再递归下去,这大大优化了
    return(r);
    int r1=order(dat+1,n-1);
    return (r1==r?r:0);
    } // 这递归算法仅六行,够短的了 !!!!
    main()
    {
    int dat[ ]={1,4,2,6};
    printf("%d",order(dat,4));
    }
    我用C++BUILDER6试过了,我的递归是正确的
    2019-07-17 22:55:07
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
数据+算法定义新世界 立即下载
袋鼠云基于实时计算的反黄牛算法 立即下载
Alink:基于Apache Flink的算法平台 立即下载