求优化本代码方法或更好的算法
下面是我自己写的代码,但在海量数据计算中时间太长,想请高手们帮忙看能不能再优化一下,或者换种算法都行,只求提高运算速度
结果要求:数组中每一个字符串都是"0","1","3",总长度为了14位,要求把原来每一位中如果是0时就改成1和改成3生成两个新的字符串,例:原字符串"01301301301303 "结果:"11301301301303 ","31301301301303 ","00301301301303 ","03301301301303 "..........每一位改变后生成新字符串,最后的数据不能有重复.
Dim s1, s3 As Integer s3 = TNN集.Length - 1 Dim dict As New Dictionary(Of String, Short) '新的 Dictionary类 For Each ii As String In TNN集 If Not dict.ContainsKey(ii) Then dict.Add(ii, 14) '是否含有 i的健值 Next Dim i As String For s1 = 0 To s3 Application.DoEvents() '========================================================= Dim TS() As Char = TNN集(s1).ToCharArray '把每条单式拆分成字符数组 For s2 As Short = 0 To 13 Select Case TS(s2) Case "3" TS(s2) = "1" '改变每位值 i = New String(TS) If Not dict.ContainsKey(i) Then dict.Add(i, 14) '是否含有 i的健值 TS(s2) = "0" i = New String(TS) If Not dict.ContainsKey(i) Then dict.Add(i, 14) '是否含有 i的健值 TS(s2) = "3" Case "1" TS(s2) = "3" '改变每位值 i = New String(TS) If Not dict.ContainsKey(i) Then dict.Add(i, 14) '是否含有 i的健值 TS(s2) = "0" i = New String(TS) If Not dict.ContainsKey(i) Then dict.Add(i, 14) '是否含有 i的健值 TS(s2) = "1" Case "0" TS(s2) = "1" '改变每位值 i = New String(TS) If Not dict.ContainsKey(i) Then dict.Add(i, 14) '是否含有 i的健值 TS(s2) = "3" i = New String(TS) If Not dict.ContainsKey(i) Then dict.Add(i, 14) '是否含有 i的健值 TS(s2) = "0" End Select Next Erase TS Next Return dict.Keys.ToArray dict = Nothing GC.Collect() GC.WaitForPendingFinalizers()