随机生成100万个数,排序后保存在文件中
2013-07-14 20:40
363 查看
随机生成100万个数,存储在文件out1.txt中,使用内部排序完成,并重新储存在文件out2.txt中。
(一)使用STL中的qsort函数进行操作:
(二)递归实现qsort函数进行操作:
(一)使用STL中的qsort函数进行操作:
#include "stdio.h" #include "string.h" #include "stdlib.h" #include "time.h" int a[1000000]; void load(char filename[]) //写文件 { int i; FILE *fp; fp=fopen(filename,"w"); if(fp==NULL) { printf("cannot open file/n"); return; } for(i=0;i<1000000;i++) fprintf(fp,"%d ",a[i]); } int cmp(const void *a, const void *b) { return (*(int*)a)-(*(int*)b); //从小到大进行排序 } void paixu() { qsort(a,1000000,sizeof(int),cmp); } int main(void) { int i; char filename[20]; srand( (unsigned)time( NULL ) ); //初始化随机数 for(i=0;i<1000000;i++) //打印出10个随机数 a[i]=rand(); strcpy(filename,"out1.txt"); load(filename); paixu();//快速排序 strcpy(filename,"out2.txt"); load(filename); system("pause"); return 0; }
(二)递归实现qsort函数进行操作:
#include "string.h" #include "stdlib.h" #include "stdio.h" #include "time.h" int a[1000000]; void load(char filename[]) //写文件 { int i; FILE *fp; fp=fopen(filename,"w"); if(fp==NULL) { printf("cannot open file/n"); return; } for(i=0;i<1000000;i++) fprintf(fp,"%d ",a[i]); } int partitions(int a[],int low,int high) { int pivotkey=a[low]; //基准 while(low<high) { while(low<high && a[high]>=pivotkey) --high; a[low]=a[high]; while(low<high && a[low]<=pivotkey) ++low; a[high]=a[low]; } a[low]=pivotkey; return low; } void qsort(int a[],int low,int high) //快速排序 { int pivotkey; if(low<high) { //递归调用 pivotkey=partitions(a,low,high); qsort(a,low,pivotkey-1); qsort(a,pivotkey+1,high); } } int main(void) { int i; char filename[20]; srand( (unsigned)time( NULL ) ); //初始化随机数 for(i=0;i<1000000;i++) //打印出10个随机数 a[i]=rand(); strcpy(filename,"out1.txt"); load(filename); qsort(a,0,1000000); //快速排序 strcpy(filename,"out2.txt"); load(filename); system("pause"); return 0; }
相关文章推荐
- 随机生成100万个数,排序后保存在文件中
- 随机生成100万个数,排序后保存在文件中
- 随机生成100万个数,排序后保存在文件中
- 随机生成100万个数,排序后保存在文件中
- Python 随机生成100行1000列的0~5之间的数据,并保存到csv文件
- Java随机生成验证码图片,并且保存到文件系统中
- java生成随机uuid并保存到文件
- 生成随机码,保存随机文件.
- C++: 生成100万随机数, 排序后保存到文件中
- Java随机生成验证码图片,并且保存到文件系统中
- C#生成字母和数字组成的随机文件
- win32汇编 屏幕截图保存BMP 学习笔记<第四篇>之生成BMP文件
- Android:生成随机数,生成10个随机数,存入sdcard中的随机生成文件中
- java经典算法_025对随机生成的100以内的10个数进行排序
- C++文本查询程序 C++Primer练习12.28 使用vector,map,set容器保存来自文件的数据并生成查询结果
- 在一个包含40亿个随机排列的32位整数的顺序文件中(注意随机排序),找出一个不再文件中的32位整数
- java(优化四) 自动生成pdf文件并保存到本地
- 已知一个数组 20 个元素(随机 1 到 100 之间包含 1 和 100),求大于平均数的元素个数,并动态生成一个新数组保存
- editplus保存时不生成*.bak文件
- STL 随机三趣题——随机重排,文件中随机取一行,生成N个随机数。