本文介绍了超出了气泡排序ideone的时间限制的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

#include <stdio.h>

int main(void) {

    int a[5]={1,2,0,5,4},i,j,c;
    for(i=0;i<5;i++)    
    {
        for(j=0;j<5-i;j++){
            if(a[j]>a[j+1])
            {
                c=a[j];
                a[j]=a[j+1];
                a[j+1]=c;
            }
        }
    }
    for(i=0;i<5;i++)
    {
    printf("%d",a[i]);
    }
    return 0;
}

ideone说超过时间限制:5个存储器:2048个信号:24"

ideone says "Time limit exceeded time: 5 memory: 2048 signal:24"

但是在turbo编译器上可以正常工作

but it works fine on turbo compiler

推荐答案

for(j=0;j<5-i;j++){
            if(a[j]>a[j+1])

a[j+1]是数组超出范围的访问,这将导致未定义的行为

a[j+1] is array out of bound access which will lead to undefined behavior

这篇关于超出了气泡排序ideone的时间限制的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-16 13:45