首页 > 编程知识 正文

数组从大到小排序c语言,c语言由小到大排序函数调用

时间:2023-05-04 11:17:38 阅读:54297 作者:2344

文章目录1 .介绍2 .实现大数据处理2.1创建头文件和宏2.2对数的结构2.3随机生成MIX_NUM个数字2.4统计哈希文件中出现次数最多的数字2.5统计大数据中出现次数最多的数字2.6的实现

1 .介绍

本文使用混列方法将一个大数据文件散列为多个文件进行处理,以减少文件I/o操作并提高程序效率。

2 .实现大数据处理2.1头文件和宏# include stdio.h # include assert.h # include random # definemix _ num 100000//所有数字个数# dededed //次数}Pair; 2.3随机产生的MIX_NUM个数字没有现成的大数据,我们可以在程序中随机生成大数据进行模拟大数据的处理

随机生成MIX_NUM个数字voidcreatfile _ big data (const char * path ) file*fw=fopen (路径,' wb ' ); //二进制数据assert(fw!=nullptr; int tmp; for(intI=0; i MIX_NUM; I ) ({tmp=rand ); frite(tmp,sizeof ) int )、1、fw ); }fclose(fw; ) 2.4统计哈希文件中出现次数最多的数字//统计哈希文件中出现次数最多的数字,计数器为item _ numpairhashfile (const char * path (int* arr=) int * ) 资产(Fr!=nullptr; int tmp; //对每个数字的出现次数while进行计数(fread ) tmp,sizeof (int,1,fr )0) ) {arr[tmp/4]; (//找到出现次数最多的数字pair pa={0}; for(intI=0; i ITEM_NUM; I ) if(pa.timesARR[I] ) {pa.num=i * 4 tmp % 4; pa.times=arr[i]; }fclose(fr ); 自由(arr ); 返回PA; ) 2.5统计大数据中出现最多的数字//统计文件中出现的最大次数,内存限制为item _ numpairmaxtimes (const char * path ) int * arr=(int * ) calloc ) item int tmp; char patharr[4][20]; for(intI=0; i 4; I ) sprintf(patharr[I],' %d.txt ',I ); }FILE* fw[4]; for(intI=0; i 4; I ) ) fw[I]=fopen(patharr[I],' wb ' ); //将原始数据散列为四个散列文件,然后读取/写入文件(文件IO ) while ) fread(tmp,sizeof(int ),1,fr )0) fwrite (tmp,sizeof ) i 4; I ) ) fclose(fw[I]; }Pair paArr[4]; for(intI=0; i 4; I ) Paarr[I]=hashfile(Patharr[I]; (} Int索引=0; //保存次数最多的数据的下标for(intI=0; i 4; I ) if (paarr [ index ].timespaarr [ I ].times ) {index=i; } }返回paarr [ index ]; }2.6intmain () {const char* path='BigData.txt '; creat file _ big data (路径; pairpa=maxtimes(path ); printf ('内存无限制时统计=%d,次数=%d ',pa.num,pa.times ); 返回0; }

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。