算法的强大

近几天研究了几个常用算法,插入,选择,合并,用测试程序生成几个大小不一样的输入文件,数量从几千万到上亿。刚开始测试时,把每次排序数只调到1000,生成的测试结果显示,插入排序,选择排序,合并排序依次性能下降。

  转头一想,不对呀,这与书上不符。突然一想o(n2),貌似我的n比较小,于是把将每次供排序的数量调到999999,这样的测试同时有9次,结果让我下巴都掉了。

之前威风得不行的插入排序,跑了半天(只是我不想等了),还没有结果。而排序一直靠后的合并排序只用了17s。有图有真相。

再次坚定了学习算法的心。

come on, baby.

测试一次1000w的数据量,合并排序效果:

把写排序结果到文件代码注释后,时间缩短到

算法的强大

时间: 06-13

算法的强大的相关文章

基于语法树的语句识别算法

需求分析 自然语言处理的人机对话中,用户的语句表达具有多样性,例如"我喜欢你"."你被我喜欢着"表达的是同一个意思,如何让计算机理解识别这些多样化的句子,面对各式各样的同义问题,都能作出相同的问答,本文尝试通过语法树.依赖树等工具将多样化的问句转换成较为统一形式的句子,以方便计算机识别这些语句. 特征表示 我们的目标是解决中文语句的多样性,考虑到如果直接使用词汇作为特征,有可能由于多样化的组合导致问题复杂化,例如:①你被我喜欢着:②她被我喜欢着,都可以转换成相同的形

在.NET中应用MATLAB算法

在科学研究和工程应用中,往往要进行大量的数学计算,其中包括矩阵运算.这些运算一般来说难以用手工精确和快捷地进行,而要借助计算机编制相应的程序做近似计算.目前流行用Basic.Fortran和c语言编制计算程序, 既需要对有关算法有深刻的了解,还需要熟练地掌握所用语言的语法及编程技巧.对多数科学工作者而言,同时具备这两方面技能有一定困难.通常,编制程序也是繁杂的,不仅消耗人力与物力,而且影响工作进程和效率.为克服上述困难,美国Mathwork公司于1967年推出了"Matrix Laborator

【20160924】GOCVHelper 图像增强部分(1)

图像增强是图像处理的第一步.这里集成了一些实际使用过程中有用的函数. //读取灰度或彩色图片到灰度 Mat imread2gray(string path){ Mat src = imread(path); Mat srcClone = src.clone(); if (CV_8UC3 == srcClone.type() ) cvtColor(srcClone,srcClone,CV_BGR2GRAY); return srcClone; } 算法核心在于判断读入图片的通道数,如果是灰度图片则

15款国内移动应用开发者都必须知道的小而美SDK

随着智能手机硬件性能的不断提升和4G网络的普及,移动APP以迅雷不及掩耳之势席卷并改变了我们的生活.移动应用程序的开发需求也迅速上升,各大企业也将自己的开发能力开放出来.封装好的工具SDK因为开发成本低.节约时间.快速上线.功能稳定等突出优势受到了广大开发者的青睐. 据不完全统计,现在市面上产品开发工具一共近300个,涉及到即时通讯.地图.多媒体.社交分享.支付.客服工具.运营分析.广告换量.测试分析报告.验证推送等各方面.中国的SDK链条在逐渐完善同时也在支付.客服.广告换量.定位等方面出现较

【转载】如果有人问你数据库的原理,叫他看这篇文章

原文:如果有人问你数据库的原理,叫他看这篇文章 本文由 伯乐在线 - Panblack 翻译,黄利民 校稿.未经许可,禁止转载!英文出处:Christophe Kalenzaga.欢迎加入翻译组. 一提到关系型数据库,我禁不住想:有些东西被忽视了.关系型数据库无处不在,而且种类繁多,从小巧实用的 SQLite 到强大的 Teradata .但很少有文章讲解数据库是如何工作的.你可以自己谷歌/百度一下『关系型数据库原理』,看看结果多么的稀少[译者注:百度为您找到相关结果约1,850,000个…] 

诡异的尺寸

前面我说了, iPhone 6 Plus 的 1080p 分辨率的屏幕是一个苹果对于技术妥协的结果,关于这一点,我并没有直接的证据可以证明,不过根据我们 iOS 开发者对于新版 Xcode 的研究,我们发现 iPhone 6 Plus 的逻辑分辨率并不是大家想想的 1080p,而是一个非常诡异的数值:1242 x 2208. 关于这个逻辑分辨率,它最大的问题,那就是我们现在拿到手上的 iPhone 6 Plus 的物理分辨率是不同的,这直接导致所有的 3x 图片实际上并不能在 iPhone 6

Linux 文件系统同步

同步就是将物理内存中dirty的页写入到磁盘中,保证磁盘和物理页之间的内容一致. 触发同步操作的时机: 1.周期性内核线程,扫描脏页,根据一定的规则选择脏页,将页写回到磁盘. 2.如果内核中的脏页过多,会触发同步 3.内核中其它组件触发同步操作(如sync.fsync和fdatasync等函数调用) 传统的UNIX实现在内核中设有缓冲区高速缓存或页面高速缓存,大多数磁盘I/O都通过缓冲进行.当将数据写入文件时,内核通常先将该数据复制到其中一个缓冲区中,如果该缓冲区尚未写满,则并不将其排入输出队列

ABB测量:化繁为简 从产品到应用

2014年5月15日,ABB自动化世界在广州白云国际会议中心盛大开幕,ABB测量产品围绕"测量,化繁为简"的主题, 向观众全面展示了ABB测量产品先进的技术和成熟的解决方案,包括新一代涡街流量计VortexMaster FSV400.LST400超声波明渠液位计.AquaMaster3电磁水表以及AquaProbe插入式电磁水表.PGC5000 过程气相色谱仪等产品.ABB测量产品全球业务单元负责人Ilpo Ruohonen在新闻发布会中,为大家详尽介绍了ABB测量产品的"化

前端学HTTP之实体和编码

前面的话 每天都有各种媒体对象经由HTTP传送,如图像.文本.影片以及软件程序等.HTTP要确保它的报文被正确传送,识别.提取以及适当处理.为了实现这些目标,HTTP使用了完善的标签来描述承载内容的实体.本文将详细介绍HTTP的实体和编码 实体介绍 如果把HTTP报文想象成因特网货运系统中的箱子,那么HTTP实体就是报文中实际的货物.下图展示了一个简单的实体,装在HTTP响应报文中 实体首部指出这是一个纯文本文档(Content-Type : text/plain),它只有18个字节长(Cont

斯坦福第十二课:支持向量机(Support Vector Machines)

12.1  优化目标 12.2  大边界的直观理解 12.3  数学背后的大边界分类(可选) 12.4  核函数 1 12.5  核函数 2 12.6  使用支持向量机 12.1  优化目标 到目前为止,你已经见过一系列不同的学习算法.在监督学习中,许多学习算法的性能都非常类似,因此,重要的不是你该选择使用学习算法 A 还是学习算法 B,而更重要的是, 应用这些算法时,所创建的大量数据在应用这些算法时,表现情况通常依赖于你的水平.比 如:你为学习算法所设计的特征量的选择,以及如何选择正则化参数,