当前位置: 代码迷 >> C语言 >> 求助高手的分析
  详细解决方案

求助高手的分析

热度:430   发布时间:2008-06-21 16:04:33.0
求助高手的分析
这条程序一个错没有 就是无法运行 但把其中的一个100000(十万)改成10000(一万)就行了 为什么啊
#include<stdlib.h>
#include<stdio.h>
#include<time.h>
void Insert_Sort(int R[],int n )
{
    int i,j;
        for(i=2;i<=n;i++)
            if(R[i]<R[i-1])
                {
                    R[0]=R[i];
                    for(j=i-1;R[0]<R[j];j--)
                    R[j+1]=R[j];
                    R[j+1]=R[0];
                }
}
void main()
{
    
    {
        int i,j,x,k;
            int a[100000];
        srand((unsigned)time(NULL));
            for(i=0;i<100000;i++)
            {    
                k=rand()%100;
                a[i]=k;
                printf("k=%d\n",k);
            }
            {
    clock_t start;
    clock_t end;
    float t;
    start=clock();
                {
            int i,n=100000;
            Insert_Sort(a,n);
                }
                for(i=0;i<100000;i++)
                    printf("%d\n",a[i]);
            
            end=clock();
            t=(float)(end-start)/(float)CLOCKS_PER_SEC;
            printf("%f",t);
    }
    }
    {
    clock_t start;
    clock_t end;
    float t;
    start=clock();
    {
        int i,j,x,k;
            int a[100000];
        srand((unsigned)time(NULL));
            for(i=0;i<100000;i++)
            {    
                k=rand()%100;
                a[i]=k;
                printf("k=%d\n",k);
            }
            
                for(j=0;j<99999;j++)
                    for(i=0;i<99999-j;i++)
                        if(a[i]>a[i+1])
                        {
                            x=a[i];
                            a[i]=a[i+1];
                            a[i+1]=x;
                        }

                for(i=0;i<100000;i++)
                    printf("%d\n",a[i]);
            
            end=clock();
            t=(float)(end-start)/(float)CLOCKS_PER_SEC;
            printf("%f",t);
    }
    }
    {
    clock_t start;
    clock_t end;
    float t;
    start=clock();
    {
        int i,j,x,k;
            int a[100000];
        srand((unsigned)time(NULL));
            for(i=0;i<100000;i++)
            {    
                k=rand()%100;
                a[i]=k;
                printf("k=%d\n",k);
            }
            for(i=0;i<99999;i++)
            {
                x=i;
                for( j=i+1;j<100000;j++ )
                    {
                        if( a[x]>a[j] )
                        x=j;
                    }
                    k=a[i];
                    a[i]=a[x];
                    a[x]=k;
                    }
                for( i=0;i<100000;i++ )
            printf("%d\n",a[i]);
            end=clock();
            t=(float)(end-start)/(float)CLOCKS_PER_SEC;
            printf("%f",t);
    }
}
}
搜索更多相关的解决方案: int  include  void  

----------------解决方案--------------------------------------------------------
没有细看
你的i为int型,它是不可能取到100000的。
建议你把很多变量定义为long型看看.
----------------解决方案--------------------------------------------------------
换gcc
这个是插入排序吧,对于大数据运行速率很慢的...
----------------解决方案--------------------------------------------------------
请问LS 什么事GCC啊 貌似没学过 老师只讲到c程序设计第三版的第十章指针
----------------解决方案--------------------------------------------------------
还是这个问题 貌似是我理解的有误   如何生成十万个数对其用不同方法排序排序 而不是每生成十万个数进行不同方法的排序
谢谢了啊
----------------解决方案--------------------------------------------------------
http://bbs.bccn.net/thread-213535-1-1

自己看,十万对于简单排序太多了,效率不高。
----------------解决方案--------------------------------------------------------
GCC是什么环境啊 为什么那段程序在Turbo C下运行不了
我不是学计算机的 C语言只学半个多学期
老师讲的也不精 而这跟课程设计有关
请问如何改成在Turbo C下的环境啊
----------------解决方案--------------------------------------------------------
所以还是不要学了吧
一直觉得,C语言是计算机系学生的专属秘密花园~~~
----------------解决方案--------------------------------------------------------
话说,我那个排序的总结帖上面的程序,拿来交课程设计,肯定是够了- -不过前提是你要用GCC编译……
----------------解决方案--------------------------------------------------------
my god
不能改成Turbo C的么?
----------------解决方案--------------------------------------------------------
  相关解决方案