自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(2)
  • 资源 (5)
  • 收藏
  • 关注

原创 堆排序,Dijikstra算法和C#

 昨天搞了个通宵,总算把一堆与排序和图的算法用代码给实现了,其中最难的是堆排序和 Dijkstra 最短路径算法。今天早上扬眉吐气,以前望而生畏的东西,现在终于可以信手拈来了。 数组排序,以前我用快速排序,不过性能不太稳定,而且一不小心堆栈溢出。堆排序虽然比快速排序平均性能差点,但极端情况下要好得多,性能稳定。 经过测试,我的堆排序算法指令耗费为 75.66 N*log2 N,比快速排序平均性能

2008-10-09 16:04:00 579 1

原创 图像透明拷贝 - 不同方法的效率比较

图像透明拷贝 -  不同方法的效率比较基于 Windows GDI 的图像透明拷贝,我知道的有三种方法。第一种方法是用 MaskBlt() 函数,第二种方法是我从网上看来的,用 SRCINVERT 的 DC 拷贝 (BitBlt) 的方法。第三种方法是直接处理像素。先晾一下我的测试结论: 方法 每像素处

2007-12-21 18:27:00 918 1

一个新的printf

一个自己写的printf, 主要用于系统 printf 不能用的时候, 比如在窗口程序、多线程程序中. 可以重定位到控制台/终端或者内存缓冲区. 由于多线程程序(无论 windows 还是 linux)中不能用 printf("%f") 输出, 所以写了个这个.

2012-02-12

字符串类 - 带KMP查找

一个字符串的类. 唯一值得用的是里面集成的 KMP 算法字符串查找和字符串比较功能, 我写 linux 程序时用它来分析命令行.

2012-02-12

C++用堆排序

所有 N*log N 性能排序算法中性能最稳定的. 不过是不稳定排序算法. 使用方法: 构造一个 HeapSortNS::HeapSortHeap 类, 初始化时需要三个东西: 数组元素个数, key 的数组和要排序的数组, HeapSortNS::HeapSort 将按 key 从小到大排列. key 可以是任何类.

2012-02-12

实数与文本互化子程序

文本和双精度实数的互化. 这次的代码是我用纯粹的 C 写的了, 我现在的代码中都用这个函数. 反正也不算资源分, 拿出来大家分享一下.

2009-09-10

实数与文本转化子程序

实数与文本转化的子程序<br><br>函数声明如下:<br>void real2txt(char* text, float f, int width);<br>void real2txt(char* text, double f, int width);<br>void txt2real(char * text, float * f, int width);<br>void txt2real(char * text, double * f, int width);<br><br>编译及运行要求:支持 Intel 指令集,支持 C 与汇编混合编译。(如 Windows + VC)<br><br>缘起:我在 C 标准库里似乎没有找到文本转化为实数的程序。因为要用,只好自己编了一个。为了方便起见,我在程序中没有牵涉到科学记数法的处理。<br><br>效率:本着一切效率优先的原则,我用标准 C 与汇编语言 (Intel 8087 指令系统) 混合编程的方法。所有函数均进行过效率测试,结果如下:<br> 实数->文本:12 ~ 24 字节文本的转化耗费 1 ~ 2 kClk<br> 文本->实数:12 ~ 32 字节文本的转化耗费 0.8 ~ 3 kClk<br>测试平台是 Intel 迅驰 3,单位 kClk 是一千个 CPU 指令周期。相比之下,C 标准库函数 pow(a, b) 的 CPU 耗费是 0.5 kClk,而 sprintf(***,"%f",***) 的系统耗费则是 14 kClk。<br><br>问题:把文本转化成实数的问题似乎不是很大,但把实数转化成文本问题就大了:8087 中没有反对数指令!也就是说,pow(a, b) 必须自己算!我曾经使用过一种算法,即用多次开平方的方式来实现指数运算,但效率只有 pow(a, b) 的六分之一。最后实在无奈,我只要还是使用 pow(a, b) 来算指数。我甚至反汇编 pow(a, b),但没看懂算法,而且也没见代码中使用 fscale 这样的指令。<br>对数指令 fyl2x 的系统耗费一般在 0.180 kClk,相比之下反对数实在太慢了。怎么快速地算反对数这个问题我实在想不通,望大侠赐教!

2007-12-17

空空如也

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

TA关注的人

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