Visual Basic for Applications
perfect_red
这个作者很懒,什么都没留下…
展开
-
vba 背包实现
' 背包的作用,只负责搜集,在搜集完成后循环遍历背包内的对象,没有多余的用途Private head As NodePrivate n As LongSub add(i As Variant) Dim newNode As New Node newNode.letItem = i newNode.letNext = head Set head = newNode n = n + 1 End SubPublic原创 2021-01-19 11:24:09 · 331 阅读 · 0 评论 -
vba 实现红黑树符号表
红黑树RedNodeRedBlackTreeTableRedNodeEnum NodeColor ' 红树 RED = 0 ' 黑树 BLACK = 1End Enum' 二叉树左树Private left As RedNode' 二叉树右数Private right As RedNodePrivate key As VariantPrivate value As VariantPrivate treeSize As LongPriv原创 2020-12-31 00:21:22 · 231 阅读 · 0 评论 -
vba 实现桶排序
桶排序PriorityQueue桶排序桶排序对数据的要求非常严格;且最好是能够轻松切分成均匀块。PriorityQueue由优先队列改写,这里是为了方便演示,实际操作中,不允许破环优先队列内部' 优先队列Private pq() As VariantPrivate n As Integer'创建一个优先队列Private Sub class_initialize() ' 0 位置没有使用 n = 0 ReDim pq(1)End Sub' 创建一个初原创 2020-12-26 22:22:12 · 517 阅读 · 0 评论 -
vba ado的一些封装
ado封装#DataBaseOption ExplicitPrivate dataBase As StringPrivate username As StringPrivate password As StringPrivate conn As ConnectionPrivate sql As StringPrivate serverip As StringPrivate rs As RecordsetPublic Property Let letServerip(ip As Strin原创 2020-12-25 14:34:35 · 331 阅读 · 0 评论 -
算法4 vba二叉树符号表
' 二叉树左树Private left As Node' 二叉树右数Private right As NodePrivate key As VariantPrivate value As VariantPrivate treeSize As LongProperty Let letLeft(ByRef l As Node) assign left, lEnd PropertyProperty Let letRight(ByRef r As Node) ass.原创 2020-12-16 23:54:48 · 471 阅读 · 0 评论 -
算法4 vba二分法符号表
二分法实现的符号表' 二分查找的符号表' 隔离索引,从1开始,数组操作从0开始' 这种设计隔离数组操作,只是为了方便理解,如果实际使用,可以修改为 从0开始,能节省不少操作。Private keys()Private values()Private n As Long' 暂时省略辅助的增加和缩减,如有需要,参照以前的博客' 基本的符号表apiPrivate Sub class_initialize() ' 省略增加,适当加大 ReDim keys(100)原创 2020-12-15 23:59:56 · 435 阅读 · 0 评论 -
算法4 vba实现快速排序
快速排序快速实现三向切分快速实现Sub debugTest() Dim a() As Variant a = Array(6, 2, 5, 3, 7, 4, 6) sort a Debug.Print 1End SubSub sort(a() As Variant) doSort a, LBound(a), UBound(a)End SubSub doSort(a() As Variant, low As Long, hi原创 2020-12-10 00:19:22 · 1552 阅读 · 3 评论 -
算法4 vba实现堆排序
前言:只有自己取亲自尝试,才知道坑有多少,一个细节没注意,都会导致整个结果的错误,泪奔。' 堆排序Sub main() Dim a() As Variant a = Array(1, 5, 2, 5, 0, 4, 8) heapSort aEnd Sub' 封闭了数组操作,可以很安全的从1 开始Sub heapSort(a() As Variant) Dim i As Integer Dim num As I原创 2020-12-09 16:25:40 · 309 阅读 · 0 评论 -
算法4 vba实现归并排序
' 初步实现,' 优化步骤' 小数组使用插入排序' 去除边界判断' 不必要的合并' 取消向辅助数组复制数据Sub main() Dim a() As Variant Dim i As Integer i = Int(3 / 2) a = Array(1, 2, 5, 3, 7, 4) sort a Debug.Print 1End SubSub sort(a() As Va原创 2020-12-07 14:03:51 · 424 阅读 · 0 评论 -
算法4 vba实现希尔排序笔记
' 希尔排序Sub shellSort(a) Dim i As Integer Dim j As Integer Dim n As Integer If Not VBA.IsArray(a) Then Exit Sub Dim h As Integer n = UBound(a) h = 1 ' 开始构建序列 While h <= n / 3原创 2020-12-06 09:43:13 · 335 阅读 · 0 评论 -
算法4 vba实现优先队列笔记
' 优先队列Private pq() As IntegerPrivate n As Integer'创建一个优先队列Private Sub class_initialize() ' 0 位置没有使用 n = 0 ReDim pq(1)End Sub' 创建一个初始容量为max的优先队列'用 a[] 中的元素创建一个优先队列Private Sub resize(max As Integer) ReDim Preserve pq(max)En原创 2020-12-06 01:14:55 · 402 阅读 · 0 评论 -
vba 实现冒泡排序
Sub main() Dim a() a = Array(1, 3, 2, 5, 6, 7, 9, 8) sort aEnd Sub' 冒泡排序Sub sort(a)Dim i As IntegerDim j As Integer If Not VBA.IsArray(a) Then Exit Sub For i = LBound(a) To UBound(a) For j = LBound(a) To U原创 2020-12-01 17:23:57 · 926 阅读 · 0 评论 -
vba 队列实现
总觉得不够完善,先记录下来,在使用中慢慢修改Private ne As Node' 简单起见Private item As StringProperty Let letNext(n As Node) Set ne = nEnd PropertyProperty Let letItem(i As String) item = iEnd PropertyProperty Get getNext() Set getNext = neEnd PropertyProp原创 2020-11-30 16:12:02 · 752 阅读 · 0 评论