自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(74)
  • 资源 (4)
  • 收藏
  • 关注

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

本文给出堆排序算法描述和代码

2022-02-06 15:26:43 156

原创 关于wasm micro runtime堆的大小的指定

关于wasm micro runtime堆的大小的指定在实际应用中,我们需要定制一个wasm解释器,并在wasm解释器启动后,运行事先编译后的wasm字节码程序中的某个函数。wasm程序可以是一个单独的.wasm文件,也可以将.wasm文件的内容作为一个数组定义,嵌入在wasm解释器的程序中。无论哪种情况,如果.wasm客户程序的函数需要动态分配内存的话,在初始化wasm解释器时,需要指定堆的大小。在指定堆的大小时,如果参数指定不当,wasm的函数在非配内存时,可能失败。通过下面的例子,我们给出一个示范,

2021-03-14 22:42:56 652

原创 关于c语言realloc函数分配的内存上限测试

关于c语言realloc函数分配的内存上限测试1.测试环境2.测试方法之一,使用realloc函数不断分配更多的内存2.1测试方法2.1.1 首先使用malloc分配51.2MB内存2.1.2. 然后反复调用执行下面的步骤,看看可分配的内存上限是多少.2.2.测试结果2.2.1.开始,可用内存13GB左右,swap分区使用率为0%2.2.2.调用realloc,多数情况下,只需10-30微秒,少数...

2020-04-03 18:49:30 680

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

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

2018-04-14 23:28:39 457

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

编辑重了,不知怎么删除,请参阅排序算法从入门到精通之八--堆排序_liangbch的专栏-CSDN博客排序算法从入门到精通之九--性能测试

2018-04-14 22:54:02 234

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

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

2018-04-14 22:27:55 862

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

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

2018-04-14 10:42:07 392

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

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

2018-04-13 18:32:49 233

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

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

2018-04-13 17:52:01 259

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

这个算法的复杂度和冒泡排序相同,相对于冒泡排序,这个算法减少了交换次数。算法描述:1.这个算法将待排序的数组分成左右2部分,左部分已经排好的,右部分是尚未排好的。左部分中,其最大的元素(最末的元素)总是小于等于右部分的任意一个元素。一开始,左部分为空,右部分是整个数组,随着排序的继续进行,左部分增加扩大,右部分逐渐减小,直到右部分为空为止。2. 每趟扫描过程中,检查右部分的所有元素,并找出最小的那...

2018-04-13 17:32:37 179

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

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

2018-04-13 17:11:11 173

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

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

2018-04-13 16:48:53 194

原创 Visual studio 与字符编码浅析

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

2018-03-19 15:08:57 5109

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

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

2018-03-18 12:04:23 10655 1

原创 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:\app\lbc\product\11.2.0\dbhome_1\OCI\include,lib文件所在的目...

2018-03-16 23:00:10 2208

原创 Visual Studio 2013 的兼容性问题

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

2018-03-16 12:22:22 3017

原创 Oracle 和 Mysql 的整数类型

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

2018-03-02 12:39:47 3201

原创 二叉树的某些函数的实现

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

2018-02-13 23:03:12 303

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

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

2018-02-13 16:06:30 512

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

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

2018-01-04 11:31:01 362

原创 我开通个人网站了

我开通个人网站了。

2017-12-25 18:53:02 1069

原创 也谈圆周率计算

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

2017-12-05 20:49:36 9844

原创 AGM函数近似值的估计

AGM函数近似值的估计 AGM是 Arithmetic-Geometric Mean的缩写,意为算术几何平均数。其定义为,给定两个正实数a0和b0,我们定义一个迭代过程 ai+1=ai+bi2,   bi+1=aibi−−−√ai+1=ai+bi2,   bi+1=aibi a_{i+1}= \frac {a_i+b_i} {2}, ...

2017-08-12 02:08:10 2203

原创 汇编语言编程中遇到的一个跨文件函数调用问题

VS工程中C和汇编语言混合编程遇到的一个跨文件函数调用问题。

2016-10-14 09:20:16 2609

原创 批量分解素因数(二)

本文中的程序使用压缩的格式存储M以内(包含M)的所有奇数的分解式,本程序侧重于使用尽可能少的内存空间来保存M以内的所有奇数的分解式。

2016-07-26 10:06:45 762

原创 批量分解素因数(一)

这个程序采用高效的算法,将n以内的所有自然数分解质因数,并存储起来,最后输出其分解式。

2016-07-24 22:58:53 1675

原创 一个卓有成效的汇编优化范例--使用SSE2指令优化进制转化

本文通过一个64位整数转化为16进制字符串的函数,讲述程序优化的的一些方法。本文包括3个C语言的版本和1个SSE2汇编的版本。性能最强的SSE2版本的性能竟达原始C版函数的性能的21倍。

2015-08-05 22:10:24 1998

原创 Spigot 算法之一 计算调和级数的和

 我是首先在[1] 注意到 Spigot-Algorithm的,这个算法发布的相当早,见[2]. [1] 给出几个令人惊异的程序,只用很少的代码就可以计算e,pi,log(2)等常数。其中那个4行代码计算圆周率的程序被网友称作外星人写的程序,但我一直没有勇气去分析和学习它,最近终于决定学习这个 Spigot-Algorithm,先看了文献【3】,明白了其基本思想,遂计划尝试编写各种计...

2015-07-04 10:00:22 4852

原创 最短的计算大数乘法的c程序

这个程序目的是尽量使用最少的代码来计算大数乘法。本程序接收2个从键盘输入的整数,计算他们的乘积,并输出结果,去除回车和不必要的空格,源代码仅仅194个字节。

2015-07-01 21:53:20 3689

转载 浮点数到整数的快速转换

浮点数到整数的快速转换      在计算机图形运算中,常常要将浮点数转换为整数,例如在图像的光栅化阶段,就要执行大量的类型转换,以便将浮点数表示的坐标转化为整数表示的屏幕坐标。  ---------------------------------------------------------------------------------------- // // 强制类

2015-03-28 17:16:23 4094 1

原创 编译器中和64位编程有关的预定义宏

本文对分别测试VC,MinGW,GCC 三种编译器,在32位和64位模式(共6种情况下),和64位编程有关的与预定义宏的值。对跨平台编程具有参考意义。

2014-06-30 19:29:03 27637

原创 公比为无理数的等比数列的近似表示

在工程上,经常能够看到公比为无理数的等比数列。无理数是不可以表示为p/q的形式(这里p和q都是正整数)。但是,在某些情况下,并不严格要求相邻2项的比绝对相等,只要近似相等就可以了,这是给出用有理数来拟合这个数列的例子。

2014-03-26 01:47:21 1803

转载 浮点数的比较

在数学运算当中经常会涉及到判断两个数是否相等的情况 对于整数很好处理 A==B这样的一个语句就可以解决全部的问题 但是对于浮点数是不同的 首先,浮点数在计算机当中的二进制表达方式就决定了大多数浮点数都是无法精确的表达的 现在的计算机大部分都是数字计算机,不是模拟机,数字机的离散化的数据表示方法自然无法精确表达大部分的数据量的。其次计算机浮点数的精度在单精度float

2014-03-05 18:45:46 1138

原创 求smooth数

1.什么是Smooth数如果一个整数的所有素因子都不大于B,我们称这个整数为B-Smooth数。用符号Pn表示表示第n个素数,例P1=2,P2=3,P3=5.我们称素因子不大于Pn的Smooth数叫Pn-Smooth数。关于Smooth数更多的信息,请请参阅 Wiki词条 Smooth number http://en.wikipedia.org/wiki/Smooth_numbe

2013-09-30 10:13:25 1944

原创 转化逆波兰式为常规表达式

转化逆波兰式为常规表达式

2013-09-25 00:11:23 2443

转载 算法学习和ACM训练方案

1. POJ 推荐50题1.1  第一类 动态规划(至少6题,2479 和 2593 必做) 2479 和 259310151042(可贪心) 114110501080122112602411(稍难) 12761.2  第二类 搜索(至少4题)1011103311292049205624882492(稍难,也可并查集)

2013-09-16 14:57:58 6081

原创 使用回溯法求所有从n个元素中取m个元素的组合

一个使用回溯法求n个元素中去m个元素的c语言代码,包括2个版本,递归版和迭代版,前者代码简洁,后者性能更好些。

2013-09-13 13:55:56 8876 2

原创 用32位汇编语言写的一个简单的表达式计算器

本文给出一个简单的表达式计算器32位汇编源程序,并给出对应的C语言代码,有助于理解汇编和C语言编程的异同。

2012-06-14 01:29:24 6124

原创 用C语言和汇编语言实现将1个整数分解成几个素数的乘积

本文中的程序功能是将1个整数分解成几个素数的乘积,并提供了C语言和32位X86汇编语言2个不同的版本。本文尽量给出一个较好的实现,希望对c语言学习者和汇编语言学习者带来帮助。

2012-06-13 23:08:18 18987 2

原创 计算大数阶乘--Fortran版

本文给出一个使用Fortran语言的计算大数阶乘的程序,该程序可以计算出1-21万之间的数的阶乘。

2012-06-05 10:52:46 7752

用哈夫曼编码压缩文件

这是我自己学习huffman编码时编写的一个小程序。可以对文件进行压缩和解压缩,支持2种压缩算法,文件名称和压缩模式在命令行参数设置。内有编译好的执行文件,测试结果,数据文件,比较详细的使用说明和注释。程序使用c语言编写,未使用任何第三方库。在某些情况下(比如super-pi的计算结果),用我的这个程序压缩后的文件甚至比winRAR最优压缩模式更小。

2012-05-09

用牛顿迭代法计算整数的平方根到任意精度

这个程序展示了如何使用GMP来计算小整数的平方根并精确到任意精度,它并没有直接调用GMP的浮点函数来直接计算,而是通过牛顿迭代法逐步求精得到指定的精度。 这个程序以在VC6,VC2008和GCC下编译通过。在这个压缩包中,已经包含了GMP在windows平台的预编译lib文件和dll文件,你无需下载GMP来编译它。在Linux平台,你需要首先下载并安装GMP,然后你能编译和运行这个程序。 凭借GMP的高性能和牛顿迭代法,这个程序的性能非常好,在我的E8500CPU,计算sqrt(2)并输出(重定向到文件),当计算精度为10万/100万位有效数字时,仅需72毫秒和不到2秒。

2012-02-17

7种FFT代码和测试程序

本压缩包包含7种不同的FFT代码和测试程序,并给出各个FFT程序的性能对比数据。更详细的信息请参见http://topic.csdn.net/t/20060328/11/4644901.html。 这7种FFT代码包括。 1. galois_godel()给出的程序 2. http://topic.csdn.net/t/20060222/13/4570436.html中的程序 3. 朱志刚的FFT程序。 4. 我自己(liangbch)写的两个程序 5. mixfft,来自http://hjem.get2net.dk/jjn/fft.htm 6. http://momonga.t.u-tokyo.ac.jp/~ooura/fft.html

2010-01-26

快速阶乘计算器

这是一个计算阶乘的程序,分为初级(1.0,1.1,1.2)、中级(2.0)、高级(3.0), mini, 3种算法,共计7个版本,1.x版本提供源代码和可执行文件,2.0 和3.0 版本仅仅提供执行文件。 mini 版为最新添加的版本,分dos版和windows版。dos 版的可执行文件仅仅323字节。windows版的可执行文件仅为1224字节。这两个版本均提供一个等价的.c程序源代码和制作过程说明文档。以上程序的速度均很快。下表列出各个版本的速度(CPU P4 2.6): 10000! 30000! 100000! 1.7s 21.3s 227s 1.1 0.64s 7.1s 82s 1.2 0.4s 3.7s 95s 2.0 0.1s 1.0s 16s 3.0 0.028s 0.22s 1.63s mini dos <;1.0s ---- ----- mini windows <;1.0s 约7s 约82s

2006-03-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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