| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 536 人关注过本帖
标题:关于数据排序的问题
只看楼主 加入收藏
shikamaru711
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2010-3-9
结帖率:0
收藏
已结贴  问题点数:20 回复次数:3 
关于数据排序的问题
首先从一个txt文件中读出数据,这个文件中有一百万个数据,要挑选其中第[N/2], [N/4], [N/8]大的数,同时给出小于等于[N/8]排列(请排序)。给出运行时间或者时间复杂度分析。

有没有高手能把源程序给我啊?

可以自己建立一个文件,里面随便输入几个数据的.

或者可以加我QQ:779264864,我把那个txt文件发给你..

先谢谢各位高手啦..
搜索更多相关主题的帖子: 数据 
2010-03-09 12:15
shikamaru711
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2010-3-9
收藏
得分:0 
data.rar (321.22 KB)

额,第一次在这里发帖,不知道可以传附件的..题目要求的文件在这个附件里面.
2010-03-09 12:17
dydsdyds
Rank: 6Rank: 6
来 自:Java
等 级:侠之大者
帖 子:217
专家分:457
注 册:2010-2-14
收藏
得分:10 
这么难……

c语言刚开一学期,就换开VB...
2010-03-10 20:08
mywaylgh
Rank: 8Rank: 8
来 自:厨房
等 级:蝙蝠侠
威 望:5
帖 子:188
专家分:729
注 册:2010-3-10
收藏
得分:10 
程序代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#define MAXDATA 2000000

int  comp( const  void  * p,  const  void  * q)
{
    return ( * ( int * ) p - * ( int * ) q) ;
}

int main(int argc, char **argv)
{
    clock_t start, finish;
    start = clock();
   
    double duration;
    int i=0,j,m;
    int *data;
    FILE *fp;
   
    if (argc<2) {printf("Not enough inputs,pleas input datafile!\n");exit(1);}

    data = (int *)malloc(MAXDATA*sizeof(int));

    fp = fopen(argv[1],"rb");
    if (fp==NULL) {printf("Error in open %s!\n",argv[1]);exit(1);}

    while(fscanf(fp,"%d",data+i)==1)
        i++;
    qsort ( data,  i,  sizeof ( int ) ,  comp) ;

    printf("[N/2] = %d\n",data[i/2]);
    printf("[N/4] = %d\n",data[3*i/4]);
    printf("[N/8] = %d\n",data[7*i/8]);

    printf("Now printing first 0 to N/8 ranked data!\n");

    m=i/8;

    for(j=0; j<m;j++)
        printf("%dth data = %d\n",j,data[j]);

    finish = clock();
    duration = (double)(finish - start) / CLOCKS_PER_SEC;

    printf("Running sort_data spend: %g seconds\n",duration);
}


 时间复杂度n*log(n)

 
sort_data.rar (5.95 KB)
这是可执行文件,用g++编译

使用方法:cmd下运行: sort_data data.txt

如果要将结果存入文件,运行 sort_data data.txt >outfile.txt

我的电脑的运行时间是0.468s




[ 本帖最后由 mywaylgh 于 2010-3-11 10:36 编辑 ]

人生就像茶几 上面放着许多杯具

人生也像厨房 里面总有一些洗具
2010-03-11 10:00
快速回复:关于数据排序的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017566 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved