您好,欢迎光临本网站![请登录][注册会员]  
文件名称: VB指针葵花宝典之函数指针的配套代码。
  所属分类: VB
  开发工具:
  文件大小: 54kb
  下载次数: 0
  上传时间: 2006-03-16
  提 供 者: Adam****
 详细说明: 此代码是《VB真是想不到系列之三:VB指针葵花宝典之函数指针》的配套代码。 本系列文章可见: http://www.csdn.net/develop/list_article.asp?author=AdamBear 本代码主要是用来谈函数指针在VB内部的应用之一,给出了qsort和ShellSort的实现。其中ShellSort完全是取自1998年5月VBPJ的Black Belt专栏里的源代码,可以说本文的思想基本上也来自这篇专栏文章。 ShellSort提共了三种不同的实现方法,分别是如下: PolySort1: 用Variant和对象缺省属性来比较。 PolySort2:用ISortable接口的多态对象技术来实现 PolySort3:用函数指针强制回调技术来实现。 分别运行一下这三个程序,可以发现用函数指针是最快的。值得一提作者的钻研精神,完全在VB里实现同一种算法完全三种不同的实现,而且一个比一个好,我非常佩服。 我原以为qsort应该会比它快不少,从算法上来说是这样,不过做出来才发现,要在VB里做出比它快的qsort很难,即使经过了仔细的优化。这是因为qsort的 实现上比shellsort复杂,在C里多几次比较、多几次无用的移动影响不大,但在VB里多用一次API回调的Compare、多用一次CopyMemory都是很大的开销。而且qsort要嵌套调用(不嵌套在VB里也慢),我们还要尽量节约堆栈,虽然1M的默认堆栈大小可以被扩充(有相邻的空闲空间时),但是我们依然要考虑可能存在的溢出,所以我做的qsort仅两个参数,两个局部Long型变量。大家可以参考一下我最终的qsort的源代码。 见QSort工程里的basQSort模块,有详细注释。 虽然qsort还是比shellsort慢得多,但是可以说qsort已经进行了较好的优化。可见在VB里一个算法好不好,不能仅仅从理论上看,一个差一点但实现简单的算法和一个好一点但实现上复杂的算法在VB里谁好谁坏很难说。所以从实践意义上,ShellSort的确是个不错的算法。 无论ShellSort还是qsort,它们都还可以更加快,我在文章里说过,那必须要Hack一下SafeArray。 本系列第四篇文章《VB真是想不到系列之三:VB指针葵花宝典之数组指针》里再谈,这篇文章很快就会出来。 ...展开收缩
(系统自动生成,下载前可以参看下载内容)

下载文件列表

相关说明

  • 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
  • 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度
  • 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
  • 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
  • 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
  • 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.
 相关搜索: 综合系统类
 输入关键字,在本站1000多万海量源码库中尽情搜索: