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 ...
随机推荐
- edgedb 内部pg 数据存储的探索 (五) 运行进程列表信息
做为一个简单的记录,方便后期分析学习 当前包含了一个timescale 的extension 可以不用关注 信息 ps -ef |grep edgedb edgedb 10559 24858 0 4月 ...
- 转载一篇阿里云Terraform 开发指南
连接:https://www.jianshu.com/p/0aebea117cae 是一个比较详细的开发指南
- saltstack总结-2018-0620
以下结论 结论1由于minion配置文件里能配置的只有master的IP和master的ret_port,而无法指定master的publish_port因此minion获取的master的publi ...
- ORA-00257: archiver error. Connect internal only, until freed……
今天给客户测 试问题,让客户把数据发过来了.解压缩后一看,他们还是用的oracle 815版本的(他们exp导出时,带了导出日志,从导出日志中看出来是oracle 815版本的),不过没有关系,低版本 ...
- java-使用icepdf实现pdf转换成png
下载icepdf的架包,并导入项目中,这里用到4个,如下: /** * 本地pdf文件转png */ public static int pdf2pngByFile(String target){ S ...
- 关于让simulink中display组件显示二进制的方法
关于让simulink中display组件显示二进制的方法 1.首先需要配置gateway out模块,勾选propagate data type to output 2.配置display模块 fo ...
- 微软MSDN原版Windows Server 2008 R2 With SP1下载
Windows Server 2008 R2是windows 服务器版本Windows Server 2008 R2继续提升了虚拟化.系统管理弹性.网络存取方式,以及信息安全等领域的应用,其中有不少功 ...
- spark安装
Spark下载 在spark主页的download下,选择自己想要安装的spark版本, 注意跟本地hadoop的兼容性.我这里选择了2.4.0. https://www.apache.org/dyn ...
- JavaScript 集合对象
1. 集合对象 1.1 Object 关于Object类型的创建和底层存储原理我在另一篇文章有说明: JavaScript 对象属性底层原理 我们知道了大多数情况下Object底层都是Hash结构,我 ...
- msf help.
root@Debian:~# msfconsole [-] ***rtiNg the Metasploit Framework console...- [-] * WARNING: No databa ...