随笔 - 2146  文章 - 19 评论 - 11846 阅读 - 1267万

随笔分类 -  算法与数据结构

获取 "斐波那契数列" 的函数
摘要:{ 斐波那契数列: 1、2、3、5、8、13、21、34、55、89、144 ... 等于前两数之和 }{ 昂纳多·斐波那契(Leonardo Fibonacci, 1170-1240, 意大利数学家) }uses Types;{参数 2 是要获取的总数}procedure fbnc(var A: TInt64DynArray; Count: Integer);var i: Integer;be... 阅读全文
posted @ 2010-05-10 11:08 万一 阅读(5234) 评论(5) 推荐(0) 编辑
"岛主" 同学给我出的算法题
摘要:问题来源: http://www.cnblogs.com/del/archive/2010/04/09/1708619.html#1798022问题描述 - 给出几组数值范围, 如:组一: 2..5组二: 3..6组三: 1..8组四: 2..10...然后从每组中选一个数字, 依次排列成一个新的数字, 需要列出所有排列方式.实现代码:本例测试结果: 阅读全文
posted @ 2010-04-11 12:10 万一 阅读(3250) 评论(6) 推荐(0) 编辑
极快的正整数排序函数
摘要:实现原理: 对比二进制位. unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; M... 阅读全文
posted @ 2009-05-01 01:22 万一 阅读(4743) 评论(8) 推荐(0) 编辑
用一个 Byte 数表示 8 个复选框的选择状态
摘要:本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, CheckLst; type TForm1 = class(TForm) CheckListBox1... 阅读全文
posted @ 2009-04-16 17:38 万一 阅读(4802) 评论(20) 推荐(1) 编辑
最大公约数与最小公倍数
摘要:本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; E... 阅读全文
posted @ 2009-03-10 10:26 万一 阅读(3276) 评论(0) 推荐(0) 编辑
关于十六进制转十进制 - 回复 MaxCool 的问题
摘要:这不需要写函数. //如果十六进制非字符串, 无须转换, 直接赋值即可 var i: Integer; begin i := $FF; ShowMessage(IntToStr(i)); {255} end; //如果十六进制是字符串, 用 StrToInt 即可 var s: string; i: Integer; begin s := '$FF'; i :=... 阅读全文
posted @ 2008-03-19 15:20 万一 阅读(6032) 评论(23) 推荐(1) 编辑
《Delphi 算法与数据结构》学习与感悟[10]: 双向链表
摘要:如果在结构中再拿出 4 个字节的地址空间指向上一个节点, 就成了双向链表了. 本例效果图: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(... 阅读全文
posted @ 2008-03-19 13:32 万一 阅读(4847) 评论(8) 推荐(1) 编辑
《Delphi 算法与数据结构》学习与感悟[9]: 循环链表
摘要:前面例子中, 链表的尾节点都再没有链接其他节点; 如果让尾节点再链接首节点, 不就是循环链表了吗? 本例效果图: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TFor... 阅读全文
posted @ 2008-03-19 13:30 万一 阅读(3243) 评论(0) 推荐(1) 编辑
《Delphi 算法与数据结构》学习与感悟[8]: 单向链表的添加、删除与遍历
摘要:本例效果图: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Memo1: TMemo; Button1: TBu... 阅读全文
posted @ 2008-03-18 23:58 万一 阅读(4040) 评论(4) 推荐(1) 编辑
《Delphi 算法与数据结构》学习与感悟[7]: 链表与数组的异同
摘要:首先, 上一个例子, 用数组也可以实现, 并且更简单: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: ... 阅读全文
posted @ 2008-03-18 23:24 万一 阅读(3723) 评论(10) 推荐(1) 编辑
《Delphi 算法与数据结构》学习与感悟[6]: 一个简单的"单向链表"
摘要:unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton... 阅读全文
posted @ 2008-03-18 14:23 万一 阅读(3701) 评论(3) 推荐(2) 编辑
《Delphi 算法与数据结构》学习与感悟[5]: 定位一个字符位置时, Pos 函数为什么不是最快的?
摘要:如果 Pos 函数的第一个参数是 Char 而非 String, 那么编译器也会先把 Char 转换为 String; 从内存结构到管理机制, String 远比 Char 要复杂. 因此, 面对这种情况(要定位的是 Char) Pos 还有优化的余地; 优化后速度会提升 5 倍左右. 测试效果图: unit Unit1; interface uses Windows, Mess... 阅读全文
posted @ 2008-03-18 12:53 万一 阅读(3735) 评论(2) 推荐(2) 编辑
《Delphi 算法与数据结构》学习与感悟[4]: 关于 const
摘要:如果参数在函数中不可能修改, 一定要使用 const; 不然, 编译器就会: 假定先修改, 先要备份; 使用前后要增减引用计数; 还要套上 try finally. 指定了 const 就可以避免以上过程从而提高效率. 测试效果图: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes... 阅读全文
posted @ 2008-03-18 10:55 万一 阅读(3230) 评论(6) 推荐(2) 编辑
《Delphi 算法与数据结构》学习与感悟[3]: 获取一个字节中非空位的个数
摘要:一个字节有 8 个位, 这些位可能是 0 也可能是 1; 现在要算出一个字节中是 1 的位共有多少个. 第一种方法是一个函数; 第二种方法笨了点, 是先把 256 种可能值给一个数组, 随时调取. 第一种方法虽然灵巧, 但不如第二种方法快(作者书中说: 在非特殊情况下, 一般要快到 10 倍左右); 第二种方法虽然快捷, 并且使用方便, 但要以 256 个字节的数组空间为代价. uni... 阅读全文
posted @ 2008-03-17 23:27 万一 阅读(3200) 评论(10) 推荐(1) 编辑
《Delphi 算法与数据结构》学习与感悟[2]: 数据对齐
摘要:为了加快硬件的访问速度, 编译器通常要使用"数据对齐", 譬如: //下面结构中: SizeOf(TRec) = 6; 因为 b 在这里也要占 2 字节. TRec = record a: Word; b: Byte; c: Word; end; //下面结构中: SizeOf(TRec) = 16; 这里的 a 和 b 共占了 8 个字节. TRec = record a:... 阅读全文
posted @ 2008-03-17 18:28 万一 阅读(3959) 评论(12) 推荐(1) 编辑
《Delphi 算法与数据结构》学习与感悟[1]: 通过 "顺序查找" 与 "二分查找" 说明算法的重要性
摘要:测试效果图: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Memo1: T... 阅读全文
posted @ 2008-03-17 10:41 万一 阅读(8251) 评论(20) 推荐(1) 编辑
为钩子的下一步学习补课: 如何提取 32 位中的某一位
摘要:Integer 类型是 32 位的, 有 4 个字节, 现在我们需要能够提取出其 32 位中的某一位. 但 Delphi 最小的整数类型也是一个字节(8位)的: Byte(无符号)、Shortint(有符号). 要不先从提取一个字节开始: var i: Integer; b: Byte; begin i := MaxInt; {Integer 的最大值} ShowMessage(... 阅读全文
posted @ 2008-02-27 22:28 万一 阅读(5811) 评论(8) 推荐(1) 编辑



点击右上角即可分享
微信分享提示