VB6 二维数组去重实现
关于VB6的二维数组去重算法实现
当然,这里还是有局限性,当我们的数组被填满了各个不同的值时,例如下方 700*700 = 490000 就要While49万次,这谁受得了?
所以以下仅适合小规模使用 千次计算量以内可以考虑:
'//InkHin_190310
'// 求改进指导。 Option Explicit Public Function C_StringValue(ByRef Value() As String, ByRef rValue() As Long)
ReDim Value( To , To ) As String
Dim y As Integer, x As Integer
For y = To
For x = To
Value(x, y) = CStr(rValue(x, y))
Next
Next
'Value 初始化默认值 = 0
Value(, ) = ""
Value(, ) = ""
Value(, ) = ""
Value(, ) = ""
Value(, ) = ""
Value(, ) = ""
Value(, ) = ""
End Function Public Function C_classification(ByRef rValue() As Long, ByRef Classification() As Long) As Long Dim y As Integer, x As Integer, i As Long, i2 As Integer
'//
Dim y2 As Integer, x2 As Integer, C As Boolean
'Dim Classification() as Long
Dim Value() As String
ReDim rValue( To , To )
Call C_StringValue(Value(), rValue()) 'to String ReDim Classification() As Long
y2 = : x2 = : i2 = : C = True Classification() = Value(, )
While C
For i = i2 To UBound(Classification())
C = False
For y = To
For x = To
If Value(x, y) <> "" Then ' a==b
If Value(x, y) = CStr(Classification(i)) Then
Value(x, y) = ""
Else
If Not C Then
y2 = y
x2 = x
i2 = i2 + 'i++
C = True
End If
End If
End If
Next
Next
If C Then
ReDim Preserve Classification(UBound(Classification()) + ) As Long
Classification(UBound(Classification())) = Value(x2, y2)
End If
Next
Wend
For i = To UBound(Classification())
MsgBox "位置:【" & CStr(i) & "】 :" & Classification(i)
Next
C_classification = UBound(Classification()) +
MsgBox "一共有:" & C_classification & "个值."
End Function Private Sub Command1_Click()
Dim a_C() As Long, a() As Long
Call C_classification(a(), a_C())
End Sub
VB6 二维数组去重实现的更多相关文章
- PHP二维数组去重(指定键名)
本例对二维数组中某个指定键名进行去重,发现网上大多使用array_unique或是foreach遍历等方式去重,效果不佳且较为繁琐. 本文以二维数组去重为引,介绍array_column函数的三种用法 ...
- php二维数组去重
php二维数组去重 前言:php一维数组去重很简单,直接array_unique($arr)即可,但是二维数组去重就得自己去写了 二维数组去重方法: /* * 二维数组去重 * 注意:二维数组中的元素 ...
- 如何使用python将二维数组去重呢?
二维数组的去重,能和一维的方法类似吗?import numpyc=np.array(((1,2),(3,4),(5,6),(7,8),(7,8),(3,4),(1,2)))print('二维数组:\n ...
- np.unique()对一维和二维数组去重
numpy.unique(ar, return_index=False, return_inverse=False, return_counts=False, axis=None)[source] 一 ...
- PHP 二维数组去重(保留各个键值的同时去除重复的项)
对于如下二维数组,要求对其进行去重: $arr = array( '=>array( 'name'=>'james', , ), '=>array( 'name'=>'susu ...
- PHP 二维数组去重方法
php二维数组的去重策略,如果需要根据某字段去重(其他字段可能不一致),那么需要使用循环策略,如果去重的都是相同的(字段,值),那么可以用序列化方式. $allComments = array_map ...
- PHP使用array_unique对二维数组去重处理
去重,点这里,东西是好东西,就是有点懒.莫见怪
- php 一行代码解决二维数组去重
array_unique($array, SORT_REGULAR);
- php 二维数组去重
function remove_duplicate($array){ $result=array(); foreach ($array as $key => $value) { $has = f ...
随机推荐
- 新手入门HTML5有什么推荐的书籍?
很多想迈入HTML5开发行列的人,都会问一个问题:要成为一个更好的开发人员,我应该读哪些书?有哪些HTML5开发的书籍推荐吗? 有人说开卷有益,读万卷书行万里路;有人说,书不在多,精益求精;有人说,书 ...
- Beyond Compare 3添加右键菜单
目前是在Beyond Compare 3.1.9版本上试验可行,其他版本上尚未测试. 添加右键菜单步骤: 1.新建为.bat后缀的文本,将下面“添加右键菜单批处理”复制到此文本中. 2.将批处理移动到 ...
- php7.2 sqlsrv 扩展 ubuntu Homestead centOs
PHP 7.2.9-1+ubuntu18.04.1 安装 sqlsrv 扩展 参考文章,感谢作者(建议先看,不看也可以) https://serverpilot.io/docs/how-to-inst ...
- BeanUtils使用
1.BeanUtils.populate 可以把一个map中的属性拷贝到实体javaBean,例子: Student: package com.cy.model; import org.apache. ...
- 基于STM8的ADC读取---STM8-第四章
1. 综诉 想学会如何在STM8上使用ADC这个功能,我们先得了解单片机中ADC究竟是什么. ADC是模拟信号转成数值信号,单片机只能识别TTL电平,其实就是 1 或者 0 ,但是如果我们给它一个3. ...
- Docker学习系列之一——安装篇
一.目的 Docker是目前非常流行的虚拟技术,在云计算领域得到了广泛的应用.国内的阿里.京东等大厂都非常普遍地应用了Docker.本文记录了Docker的基本安装过程及最终运行结果,以期备忘,及和同 ...
- python定时器
1.定时器用法 [1]需要注意的就是创建定时器后,会创建一个线程,程序退出之前需要调用cancel()函数关闭定时器,否则程序退不出. # -*- coding: utf-8 -*- import o ...
- centos7部署.net core2.1
1.centos 7.0及以上服务器 2..NET SDK 安装 2.1 安装 https://www.microsoft.com/net/download/linux-package-manager ...
- python3csv与xlsx文件操作模块(csv、xlsxwriter)
一.csv模块实现csv文件操作 1.CSV介绍 CSV,全称为Comma-Separated Values,它以逗号分隔值,其文件以纯文本形式存储表格数据,该文件是一个字符序列,可以由任意数目的记录 ...
- include和require的区别
include与require除了在处理引入文件的方式不同外,最大的区别就是:include在引入不存文件时产生一个警告且脚本还会继续执行,require则会导致一个致命性错误且脚本停止执行. inc ...