博主遇到了这样的一个问题,写一个快速排序算法,然后将结果以文件的形式输出,但是运行时间却要用三四分钟之久,很离谱,简直是搞死心态了。

于是博主仔细观察了一下代码。

哦,这粗心大意的我哦。我把文件写入的部分放到了快速排序的后面。由于快速排序是递归调用,于是乎,在每一次递归调用的过程中,数字都会写入一次文件,从而造成巨大的时间浪费。
解决方法是,将写入文件的代码放到快速排序外面就OK啦。

void SwapValue(int &a, int &b)
{int temp;temp = a;a = b;b = temp;
}int Partition(int *a, int left, int right)
{int x = a[right];int i = left - 1;for (int j = left; j < right; j++) {if (a[j] <= x) {i = i + 1;SwapValue(a[i], a[j]);}}SwapValue(a[i + 1], a[right]);return i + 1;
}int Randomized_Partition(int *a, int left, int right)
{srand((int)time(NULL));int i = rand() % (right - left + 1) + left;SwapValue(a[i], a[right]);return Partition(a, left, right);
}void QuickSort(int* a, int left, int right)
{if (left < right) {int qevt = Randomized_Partition(a, left, right);  QuickSort(a, left, qevt - 1);  QuickSort(a, qevt + 1, right);  }
}
void CreateFile(int *a,string filename)
{ofstream ffout(filename.c_str());if (!ffout.is_open()){cout << "创建失败" << endl;exit(0);}else{for (int i = 0; i <MaxNumber; i++){ffout << a[i] << "  ";if ((i + 1) % 10 == 0)ffout << endl;}}ffout.close();
}
void QuickSortTest()
{string name = "QuickSort.txt";CreateArry();srand(time(0));int begin;int end;begin = clock();QuickSort(number,0,MaxNumber);CreateFile(number,name);end = clock();cout << "快速排序用时...... " << end - begin << endl;
}

问题解决

一个马虎导致以文件输出快速排序结果耗时巨长相关推荐

  1. Altium Designer生产文件输出与文件归档

    一.生产文件输出 Gerber文件是线路板行业软件描述线路板(线路层.阻焊层.字符层等)图像及钻.铣数据的文档格式集合,是线路板行业图像转换的标准格式.作为初识PCB的小白,往往会将PCB源文件发给板 ...

  2. 英语字母表计算机,计算机汇编课程设计CCCC.pdf_给定一个英文ascii码文件,统计文件中英文字母的频率,以十进制形式输出。,wwwwwxxxxx...

    1.给定一个英文ASCII码文件,统计文件中英文字母的频率,以十进制形式输出. 2.用递归计算n!(n≥50), 以十进制数输出 输入一个不小于50的整数n,用递归计算n!, 以十进制数输出 3.存储 ...

  3. 编写一个程序。要求输入5个学生的成绩(从0到100的整数)并将这5个数保存到文件“data.txt”中,然后再编写一个程序,从文件“data.txt”中读取这5个学生的成绩,计算并输出他们的平均数,然

    编写一个程序.要求输入5个学生的成绩(从0到100的整数)并将这5个数保存到文件"data.txt"中,然后再编写一个程序,从文件"data.txt"中读取这5 ...

  4. 一个小巧的C++Log输出到文件类

    一个小巧的C++Log输出到文件类 (转) 作者:wangyin159 http://www.cnblogs.com/mazhenyu/p/4139352.html 一个小巧的C++Log输出到文件类 ...

  5. python打开一个不存在的文件时-python判断文件是否存在,不存在就创建一个的实例...

    python判断文件是否存在,不存在就创建一个的实例 如下所示: try: f =open("D:/1.txt",'r') f.close() except IOError: f ...

  6. log4j 控制台和文件输出乱码问题解决

    来源:http://www.coderli.com/log4j-console-file-garbled 一个小问题,却让我感觉到,现在真正动脑的人很少..我来说说吧. 今天遇到一个小问题,log4j ...

  7. MTS格式转换和MTS格式视频文件快速合并为一个新的MTS文件

    MTS格式转换和MTS格式视频文件快速合并为一个新的MTS文件 原文: MTS格式视频文件快速合并  作者:james.yang  版权:无版权问题,欢迎转载. 我们用各种DV拍摄长视频时,会自动分成 ...

  8. 【苹果iMessage相册推信息推】 一个是CSR请求文件,一个是APS_DEVELINMENT.CER的SSL证书文件,并刚刚生成了一个PASH.P12密钥

    推荐内容IMESSGAE相关 作者✈️@IMEAE推荐内容 iMessage苹果推软件 *** 点击即可查看作者要求内容信息 作者✈️@IMEAE推荐内容 1.家庭推内容 *** 点击即可查看作者要求 ...

  9. 此问题可能是由配置更改或安装另一个扩展导致的

    未能正确加载"Microsoft.VisualStudio.Editor.Implementation.EditorPackage, Microsoft.VisualStudio.Edito ...

最新文章

  1. 干掉MySQL!阿里云MVP专家的分库分表设计,搞得太棒了!
  2. PHP底层运行原理初探
  3. ceph osd跟cpu进行绑定
  4. yeoman_使用yeoman轻松创建Yeoman生成器
  5. Linux连接荣耀路由器pro2,荣耀路由pro2和电脑怎么连接?连接一体机方法
  6. 归纳推理测试没做完_天气热,教你用寒天粉做果冻,清凉爽滑,5秒吃完一盘没问题...
  7. 从华为做手机,到腾讯做游戏,他是怎样无缝切换、且年薪百万的?
  8. 赛前集训前的总结(警醒)
  9. C++下用什么矩阵运算库比较好
  10. 云计算介绍、TCP/IP协议及配置
  11. Git:git pull 的使用
  12. karto探秘之open_karto 第一章 --- 数据结构与类的初始化
  13. Silverlight 5的新功能预测
  14. windows操作系统定时关机和取消定时关机命令
  15. java redis 删除整个hash_redis中hash表内容删除的方法代码
  16. 视频I帧/P帧/B帧
  17. C# Transaction 事务
  18. win7 破解后找不到活动分区以及bootmsr missing
  19. win10系统怎么修复网络连接服务器失败怎么办,Win10网络重置后无法连接网络怎么办 网络重置后恢复网络方法教程...
  20. 从四个维度谈谈如何做好团队管理

热门文章

  1. oracle字符集增加生僻字,Oracle SQL一个“生僻字”的优化
  2. 初学python的体会心得-分享给入门Python小白的学习心得
  3. 史上最强Tomcat8性能优化
  4. YTU 3386 哈希查找2
  5. CC26xx(CortexM3) Watchdog Timer
  6. 2017年性骚扰案件频频曝光,硅谷首当其冲
  7. BaiduMap---百度地图官方Demo之OpenGL绘制功能(介绍如何使用OpenGL绘制在地图中进行绘制)
  8. 华硕x450jn拆机_华硕X450JN笔记本拆机升级SSD,影驰ONE120固态硬盘上手
  9. 如何利用(微软学术)/(google学术)/google网页,聚焦最新科技文献,并获得PDF版
  10. 用晨曦记账本记账,设置背景、文字颜色