问题的在这里:http://www.cnblogs.com/amboyna/archive/2010/02/08/1666002.html

答案:LINUX下GCC编译通过

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MAX 100000
int file_name = 0 ;

void merge(int nums[], int start, int new_mid, int end);
void qqsort(int a[],int low,int high);
int partions(int a[],int low,int high);
int segment(FILE *fp );

int main()
{
FILE *fp;
//FILE *fps, *fpa, *fpb, *fpc;
fp = fopen("num.txt", "r");
segment(fp);
fclose(fp);
//printf("segment done, total:%d\n", file_name );
//return 0;

int p = 0, i = 0;
char fn[3] = "";
char ch[20] = "";
int cache[file_name];
int cmax;
int t[file_name];
FILE *fpp[file_name];
fp = fopen("num_b.txt", "w+");
for(; p < file_name; p++)
{
sprintf(fn, "%d", p);
fpp[p] = fopen(fn , "r");
if((fgets(ch, 20, fpp[p])) != NULL)
cache[p] = atoi(ch);
}

cmax = 0;
while(1)
{
for(p = 0; p < file_name; p++)
{
if(cache[p] > cache[cmax])
{
cmax = p;
}
}
//printf("\n%d\n",cache[cmax]);
//sprintf(fn, "%d", cmax);

if(cache[cmax] != -1)
{
fprintf( fp, "%d\n", cache[cmax]);
t[cmax]++;
if((fgets(ch, 15, fpp[cmax])) != NULL)
{
cache[cmax] = atoi(ch);
}
else
{
cache[cmax] = -1;
}
}
else
{
fclose(fp);
char num[3];
for(p = 0; p < file_name; p++)
{
sprintf(num,"%d", p);
remove(num);
}
return 0;
}

}

return 0;
}

int partions(int a[],int low,int high)
{
int pivotkey=a[low];
int s;
s=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]=s;
return low;
}
void qqsort(int a[],int low,int high)
{

int pivottag;
if(low<high )
{ //递归调用
pivottag=partions(a,low,high);
qqsort(a,low,pivottag-1);
qqsort(a,pivottag+1,high);
}
}

int write_file(FILE *fp, int nums[])
{
qqsort(nums , 0 , MAX-1);
int c =0;
while(1)
{
fprintf( fp, "%d\n", nums[c]);
if (++c == MAX ) return 0;
}
}

int segment(FILE *fp )
{
char ch[20];
char num[3];
int nums[MAX];
int i = 0;
FILE * fpr ;
while(fgets(ch,100, fp) != NULL)
{
if(i <= MAX){
nums[i] = atoi(ch);
}else{
sprintf(num,"%d", file_name);
fpr = fopen( num , "w+");
write_file(fpr, nums);
fclose(fpr);
file_name++;
i = 0;
nums[i] = atoi(ch);
}

i++;
}
sprintf(num,"%d", file_name);
fpr = fopen( num , "w+");
write_file(fpr, nums);
fclose(fpr);
file_name++;
return 0;
}

其实快排还是可以进一步优化的。

[C语言]排序问题--我的解答相关推荐

  1. C语言hw,[c语言]EmailAddresses(for hw)

    You've gathered some e-mail addresses from a variety of sources, and you want to send out a mass mai ...

  2. c语言贪吃蛇黑方框,[求助][贪吃蛇]源程序,请教其中一个问题。

    [求助][贪吃蛇]源程序,请教其中一个问题. 源程序如下: 我的问题是,调节游戏速度时,数字为什么越大时,有时候竟然越快? #define N 200 #include #include #inclu ...

  3. 北风设计模式课程---深入理解[代理模式]原理与技术

    北风设计模式课程---深入理解[代理模式]原理与技术 一.总结 一句话总结: 不仅要通过视频学,还要看别的博客里面的介绍,搜讲解,搜作用,搜实例 设计模式都是对生活的抽象,比如用户获得装备,我可以先装 ...

  4. 计算机跨考土壤学,[北京林业大学]2005年土壤学复试办法_跨考网

    [北京林业大学]2005年土壤学复试办法 根据学校研究生院招生处关于落实<教育部关于做好2003年招收攻读硕士学位研究生工作的通知>通知的精神,土壤学科制定了本学科的<硕士研究生入学 ...

  5. [现代诗]情诗——给网恋中人

                                                                           [现代诗]情诗--给网恋中人    我说亲爱的,从现在开始 ...

  6. 【实验五 一维数组】7-10 sdut-C语言实验-排序问题

    7-10 sdut-C语言实验-排序问题 分数 15 全屏浏览题目 切换布局 作者 马新娟 单位 山东理工大学 输入10个整数,将它们从小到大排序后输出,并给出现在每个元素在原来序列中的位置. 输入格 ...

  7. 7-224 sdut-C语言实验-排序问题7-223 sdut-C语言实验-求阶乘(循环结构)

    目录 7-224 sdut-C语言实验-排序问题 7-223 sdut-C语言实验-求阶乘(循环结构) 7-224 sdut-C语言实验-排序问题 分数 15 全屏浏览题目 切换布局 作者 马新娟 单 ...

  8. 7-223 sdut-C语言实验-求阶乘(循环结构)7-224 sdut-C语言实验-排序问题7-225 sdut-C语言实验- 冒泡排序中数据交换的次数

    目录 7-223 sdut-C语言实验-求阶乘(循环结构) 7-224 sdut-C语言实验-排序问题 7-225 sdut-C语言实验- 冒泡排序中数据交换的次数 7-223 sdut-C语言实验- ...

  9. python datetime 格式化_[已解决]Python中用strftime格式化datetime出错

    折腾: [已解决]Flask中的templates的html中格式化datetime 期间,用代码:@app.template_filter('datetime_format') def_jinja2 ...

  10. [全网首发]一款好看的个人主页源码

    [全网首发]一款好看的个人主页 本来之前是想着要做api管理系统的,后面又不想做了,然后就做成了个人主页,开源出来给大家使用 源代码文件:个人主页源码密码:3vxq

最新文章

  1. 新的sublime text已经上传网盘,地址写在下面
  2. 分布的matlab实现_图像相似度---灰度分布算法---用matlab实现
  3. 什么样的数据适合缓存?
  4. Android 使用PDF.js浏览pdf
  5. mongodb实现对某列求和SUM
  6. Tomcat使用shutdown.bat关闭会将其他Tomcat关掉的问题
  7. 看完99%的人都学会了!9次Android面试经验总结,我先收藏为敬
  8. 二、数据库设计与操作
  9. DSF深搜入门全排列笔记nyoj366
  10. python 定时执行_python定时执行任务 轻量级
  11. python与机器学习(二)Numpy / Pandas /矩阵相乘速度对比
  12. 一文解读元学习研究进展
  13. Android——多线程之Handler
  14. 视频画中画效果,拖动进度条可以seek到相应视频帧显示
  15. u盘启动蓝屏 索尼vaio_索尼笔记本电脑安装系统后出现蓝屏怎么处理
  16. 企业资源计划(ERP)原理与实践 第三章 需求计划
  17. c语言脱验证,CCAR.适航符合性验证思路简述
  18. 连线封面:2亿多支付宝用户选择的背后,一个数据与评分带来的「等级世界」
  19. 为什么企业需要CRM系统?CRM的作用及其重要性分析
  20. 计算机云计算论文范文,云计算环境下计算机管理系统论文

热门文章

  1. 概率图模型(PGM)学习笔记(四)-贝叶斯网络-伯努利贝叶斯-多项式贝叶斯
  2. 【NCD 2019 B】Let me sleep【边双连通分量缩点、树的直径】
  3. 边缘保留滤波matlab,【DIP】各种边缘保留滤波器一览
  4. IPv6Tools:IPv6安全审计框架
  5. java代码执行效率分析
  6. rsync linux 教程,rsync 用法教程
  7. .php对收录有影响吗,你知道吗?网站收录其实对网站排名影响并不大
  8. 创建线程的3种方式,线程池的参数详解
  9. Git发生SSL certificate problem: certificate ha错误的解决方法
  10. 58-最小乘积(基本型)