复杂度、黑盒测试

     复杂度     

  时间复杂度:算法需要执行基本运算(加减乘除)次数所处的等级。

         O(1)< O(logn)< O(n) < O(n^2)

  空间复杂度 :和时间复杂度写法相同,表示算法发需要消耗的最大数据空间。

        考虑到空间一般够用,因此常常采用以空间换时间的策略,例如散列法。

    黑盒测试     

  系统后台会准备若干组数据,让提交的程序去运行这些数据。

        1.单点测试

         系统会判断每组数据的输出结果是否正确。

        2.多点测试

         要求程序能一次运行所有的数据

       (1)while...EOF型

         如果题目没有给定输入的结束条件,那么就默认取读到文件末尾。

        scanf的返回值为其读入的参数个数,正常的控制台中输入只有在到达文件末尾无法取读                  才会读入失败,此时scan的返回值是-1,C语言中使用EOF(End Of File)来表示-1。

        while(scanf(“%d”,&n)!=EOF){

          ....

}

                若想在黑框里手动触发EOF,可以按<ctrl+Z>再按<Enter>就可以结束while了。

输入字符串的两种:

while(scanf("%s",str)!=EOF{

...

}

while(gets(str)!=NULL){

...

}

(2)while...break型

当输入的数据满足某个条件时停止输入。

例:当输入的两个a和b都为零时停止输入

#include<stdio.h>

int main(){

        int a,b;

        while(scanf("%d%d",&a,&b),a||b){

                printf("%d\n",a+b);

}

        return 0;

}

(3)while(T--)

给定了测试数据的组数T

#include<stdio.h>

int main(){

        int T,a,b;

        scanf("%d",&T);

        while(T--){

        scanf("%d%d",&a&b);

        printf("%d",a+b);

}

        return 0;

}

常见的三种输出类型

(1)正常输出

(2)每组输出之后都额外加一个空行

#include<stdio.h>

int main(){

        int a,b;

        while(scanf("%d%d",&a,&b)!=EOF){

                printf("%d\n",a+b);

                printf("\n");

}

        return 0;

}

(3)两组输出数据之间有一个空行,最后一组数据后面,没有空行

#include<stdio.h>

int main(){

        int T,n,a;

        scanf("%d",&T);

        while(T--){

        int sum = 0;

        scanf("%d",&n);

        for(int i = 0;i<n;i++){

             scanf("%d",&a);

              sum = sum+a;

}

        printf("%d\n",sum);

        if(T>0) printf("\n");

}

        return 0;

}

输出一行N个整数,每两个整数用空格隔开,最后一个整数后面不允许加上空格

for(int i= 0;i<N ; i++){

        printf("%d",a[i]);

        if(i<N-1) printf(" ");

        else printf("\n");

}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值