一个马虎导致以文件输出快速排序结果耗时巨长
博主遇到了这样的一个问题,写一个快速排序算法,然后将结果以文件的形式输出,但是运行时间却要用三四分钟之久,很离谱,简直是搞死心态了。
于是博主仔细观察了一下代码。
哦,这粗心大意的我哦。我把文件写入的部分放到了快速排序的后面。由于快速排序是递归调用,于是乎,在每一次递归调用的过程中,数字都会写入一次文件,从而造成巨大的时间浪费。
解决方法是,将写入文件的代码放到快速排序外面就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;
}
问题解决
一个马虎导致以文件输出快速排序结果耗时巨长相关推荐
- Altium Designer生产文件输出与文件归档
一.生产文件输出 Gerber文件是线路板行业软件描述线路板(线路层.阻焊层.字符层等)图像及钻.铣数据的文档格式集合,是线路板行业图像转换的标准格式.作为初识PCB的小白,往往会将PCB源文件发给板 ...
- 英语字母表计算机,计算机汇编课程设计CCCC.pdf_给定一个英文ascii码文件,统计文件中英文字母的频率,以十进制形式输出。,wwwwwxxxxx...
1.给定一个英文ASCII码文件,统计文件中英文字母的频率,以十进制形式输出. 2.用递归计算n!(n≥50), 以十进制数输出 输入一个不小于50的整数n,用递归计算n!, 以十进制数输出 3.存储 ...
- 编写一个程序。要求输入5个学生的成绩(从0到100的整数)并将这5个数保存到文件“data.txt”中,然后再编写一个程序,从文件“data.txt”中读取这5个学生的成绩,计算并输出他们的平均数,然
编写一个程序.要求输入5个学生的成绩(从0到100的整数)并将这5个数保存到文件"data.txt"中,然后再编写一个程序,从文件"data.txt"中读取这5 ...
- 一个小巧的C++Log输出到文件类
一个小巧的C++Log输出到文件类 (转) 作者:wangyin159 http://www.cnblogs.com/mazhenyu/p/4139352.html 一个小巧的C++Log输出到文件类 ...
- python打开一个不存在的文件时-python判断文件是否存在,不存在就创建一个的实例...
python判断文件是否存在,不存在就创建一个的实例 如下所示: try: f =open("D:/1.txt",'r') f.close() except IOError: f ...
- log4j 控制台和文件输出乱码问题解决
来源:http://www.coderli.com/log4j-console-file-garbled 一个小问题,却让我感觉到,现在真正动脑的人很少..我来说说吧. 今天遇到一个小问题,log4j ...
- MTS格式转换和MTS格式视频文件快速合并为一个新的MTS文件
MTS格式转换和MTS格式视频文件快速合并为一个新的MTS文件 原文: MTS格式视频文件快速合并 作者:james.yang 版权:无版权问题,欢迎转载. 我们用各种DV拍摄长视频时,会自动分成 ...
- 【苹果iMessage相册推信息推】 一个是CSR请求文件,一个是APS_DEVELINMENT.CER的SSL证书文件,并刚刚生成了一个PASH.P12密钥
推荐内容IMESSGAE相关 作者✈️@IMEAE推荐内容 iMessage苹果推软件 *** 点击即可查看作者要求内容信息 作者✈️@IMEAE推荐内容 1.家庭推内容 *** 点击即可查看作者要求 ...
- 此问题可能是由配置更改或安装另一个扩展导致的
未能正确加载"Microsoft.VisualStudio.Editor.Implementation.EditorPackage, Microsoft.VisualStudio.Edito ...
最新文章
- 干掉MySQL!阿里云MVP专家的分库分表设计,搞得太棒了!
- PHP底层运行原理初探
- ceph osd跟cpu进行绑定
- yeoman_使用yeoman轻松创建Yeoman生成器
- Linux连接荣耀路由器pro2,荣耀路由pro2和电脑怎么连接?连接一体机方法
- 归纳推理测试没做完_天气热,教你用寒天粉做果冻,清凉爽滑,5秒吃完一盘没问题...
- 从华为做手机,到腾讯做游戏,他是怎样无缝切换、且年薪百万的?
- 赛前集训前的总结(警醒)
- C++下用什么矩阵运算库比较好
- 云计算介绍、TCP/IP协议及配置
- Git:git pull 的使用
- karto探秘之open_karto 第一章 --- 数据结构与类的初始化
- Silverlight 5的新功能预测
- windows操作系统定时关机和取消定时关机命令
- java redis 删除整个hash_redis中hash表内容删除的方法代码
- 视频I帧/P帧/B帧
- C# Transaction 事务
- win7 破解后找不到活动分区以及bootmsr missing
- win10系统怎么修复网络连接服务器失败怎么办,Win10网络重置后无法连接网络怎么办 网络重置后恢复网络方法教程...
- 从四个维度谈谈如何做好团队管理
热门文章
- oracle字符集增加生僻字,Oracle SQL一个“生僻字”的优化
- 初学python的体会心得-分享给入门Python小白的学习心得
- 史上最强Tomcat8性能优化
- YTU 3386 哈希查找2
- CC26xx(CortexM3) Watchdog Timer
- 2017年性骚扰案件频频曝光,硅谷首当其冲
- BaiduMap---百度地图官方Demo之OpenGL绘制功能(介绍如何使用OpenGL绘制在地图中进行绘制)
- 华硕x450jn拆机_华硕X450JN笔记本拆机升级SSD,影驰ONE120固态硬盘上手
- 如何利用(微软学术)/(google学术)/google网页,聚焦最新科技文献,并获得PDF版
- 用晨曦记账本记账,设置背景、文字颜色