排序算法从入门到精通之九--性能测试

该文对几种较快的排序算法做了性能测试。测试的算法包括希尔排序,归并排序和快速排序。由于冒泡排序,插入排序,选择排序速度较慢,我们这里没有给出数据。所有几种算法在同一个程序中运行,使用同样的数据。通过修改宏MAX_LEN的值,我们对数据规模为1百万,2百万和4百万分别做的测试。 我们做了2轮测试,第...

2018-04-14 23:28:39

阅读数 83

评论数 0

排序算法从入门到精通之八--堆排序

该文容后补叙。

2018-04-14 22:54:02

阅读数 51

评论数 0

排序算法从入门到精通之七--归并排序

这篇文章讲述了归并排序的算法并给出一个优化的实现。通常,快速排序被认为是最快的算法,但是从算法性能这个方面讲,归并排序是快速排序的有力竞争者,他甚至比快速排序更快。快速排序的缺点是性能不稳定,特定的数据分布会导致排序性能变差。而归并排序是稳定的排序,其性能和数据的分布无关。归并排序的缺点是需要的内...

2018-04-14 22:27:55

阅读数 83

评论数 0

排序算法从入门到精通之六--快速排序

快速排序的算法是一种分而治之的算法,是一个递归算法。在通常情况下,快速排序算法是已知的最快的算法,故称这个算法为快速排序。其方法是:1.首先找出一个枢轴元素base。2.扫描待排序的数组,将这个数组划分为2部分,使左部分的所有元素小于等于base,右部分的所有元素大于base。3.对左部分的子数组...

2018-04-14 10:42:07

阅读数 109

评论数 0

排序算法从入门到精通之五--希尔排序

希尔排序(Shell's Sort)是插入排序的一种,又称“缩小增量排序”。

2018-04-13 18:32:49

阅读数 61

评论数 0

排序算法从入门到精通之四--插入排序

插入排序和选择排序的复杂度相同,当数据基本有序或者数组的规模比较小时,这个排序算法的效果最好,故可用作其他排序的子过程,如快速排序,归并排序。

2018-04-13 17:52:01

阅读数 72

评论数 0

排序算法从入门到精通之三--选择排序

这个算法的复杂度和冒泡排序相同,相对于冒泡排序,这个算法减少了交换次数。算法描述:1.这个算法将待排序的数组分成左右2部分,左部分已经排好的,右部分是尚未排好的。左部分中,其最大的元素(最末的元素)总是小于等于右部分的任意一个元素。一开始,左部分为空,右部分是整个数组,随着排序的继续进行,左部分增...

2018-04-13 17:32:37

阅读数 23

评论数 0

排序算法从入门到精通之二---冒泡排序

冒泡排序是最朴素的排序算法。其过程就像烧水过程一样,大的水泡从壶底一步一步冒出来,直到水面以上。其基本思想是 1. 扫描整个数组,若数组长度为n,第一趟扫描过程中,下标j从0到n-2, 依次比较arr[j] 与 arr[j+1] ,若前者大于后者交换这两个元素。2. 第一趟扫描完成后,最大的那个元...

2018-04-13 17:11:11

阅读数 47

评论数 0

排序算法从入门到精通之一公用文件

从这篇文章开始,我将陆续介绍几种排序算法,内容包括算法描述,源代码,性能测试报告等。要介绍的排序算法有冒泡排序,选择排序,插入排序,希尔排序,快速排序,归并排序,堆排序。所有的代码可包括在一个VC工程文件之中。这里写给出这些排序子程序使用的公共头文件和时间测试函数。所有代码为标准的C语言代码。我这...

2018-04-13 16:48:53

阅读数 54

评论数 0

Visual studio 与字符编码浅析

摘要:本文试图简单的说明Visual studio 2013 对于字符串编码的处理,和一些乱码问题的处理方法。关于字符编码1. 西方文字的编码。1.1 ASCII 码,ASCII是通用的英文字符的编码,对于英文字符,他采用7位2进制数来表示一个英文字符,我们知道1个byte包含8个bit,对于AS...

2018-03-19 15:08:57

阅读数 1036

评论数 0

VS2013 启动缓慢的原因分析和解决方法

摘要:Visual studio 2013相对于VS2010做了很多改进,支持C++11. 但也有一些副作用,给我们带来不便。作者发现一个VS2013的一个严重问题,在一定的情况下,VS2013的启动非常缓慢,并拖慢了整个系统。本文梳理和分析了这个问题,并给出应对方案。近来,我将VS2010换到2...

2018-03-18 12:04:23

阅读数 2355

评论数 0

Qt 编译Oracle驱动

1. 确保你的电脑安装了Oracle,请首先确认其ABI是64位的或者32位的。 2. 请找出你的Oracle SDK的目录。我的电脑安装的是64位的Oracle 11g,安装在D:\app\lbc\product\11.2.0\dbhome_1 目录下,SDK 的inlcude目录是 D:\ap...

2018-03-16 23:00:10

阅读数 258

评论数 0

Visual Studio 2013 的兼容性问题

1. Visual Studio 2013 不能编译旧的工程文件的问题。将开发工具升级到Microsoft Visual Studio 2013后,你会发现,之前在VS2010可正确编译的文件在VS2013下不能工作了。比如你可能遇到不能找到windows.h之类的问题。这是因为,VS2013默认...

2018-03-16 12:22:22

阅读数 664

评论数 0

Oracle 和 Mysql 的整数类型

1. MySQL整数数据类型   MySQL有丰富的数据类型,就整数而言,MySQL提供了多达5种整数类型,见下表类型字节最小值最大值  (带符号的/无符号的)(带符号的/无符号的)TINYINT1-128127  0255SMALLINT2-3276832767  065535MEDIUMINT...

2018-03-02 12:39:47

阅读数 642

评论数 0

二叉树的某些函数的实现

本文给出二叉树操作中某些功能的一个实现,个别函数用到STL的stack。本文包含的功能有   1. 二叉树的前序遍历,递归形式。BinaryTree_preorderTraversal   2. 二叉树的前序遍历,非递归形式,要用到stack。函数名BinaryTree_preorderTrave...

2018-02-13 23:03:12

阅读数 113

评论数 0

STL应用-使用后缀表达式求表达式的值

1.关于中缀表达式和后缀表达式  我们常见的表达式是中缀表达式形式,即二元运算符在两个操作数的中间,如“3+4*5”  而后缀表达式则是运算符位于两个操作数之后。 如“3+4*5”转化为后缀表达式为“3 4 5 * +”2.基本思路 1.我们首先将中缀表达式转化为后缀表达式 2.对后缀表达式求值3...

2018-02-13 16:06:30

阅读数 139

评论数 0

重大消息-一种新的任意精度对数算法研制成功

   重大消息,近日,由我自己独创的对数log(x)算法终于定型。其复杂度与当前公开发表的最好的算法AGM同,都是O(log(P)M(P)),p为精度,其中M(P)代表两个P位整数相乘所需要的基本运算的次数。但是我的算法有很小的常数因子,故速度更快。测试报告显示,这个算法的性能是非常令人振奋的,在...

2018-01-04 11:31:01

阅读数 103

评论数 0

我开通个人网站了

我开通个人网站了。

2017-12-25 18:53:02

阅读数 248

评论数 0

也谈圆周率计算

关于圆周率的计算历史和算法

2017-12-05 20:49:36

阅读数 3119

评论数 0

AGM函数近似值的估计

AGM函数近似值的估计 AGM是 Arithmetic-Geometric Mean的缩写,意为算术几何平均数。其定义为,给定两个正实数a0和b0,我们定义一个迭代过程 ai+1=ai+bi2,   bi+1=aib...

2017-08-12 02:08:10

阅读数 259

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭