如题!!
解决方案 »
- ADODC 查询时 读取数据库是提示 实时错误3265 如何解决?
- VBA变量声明的问题
- 不使用API,实现窗口最前端显示
- 关于日期格式的问题
- 只有一个datagrid,使用access作为数据库,如何能够让里面的相同数据合并到一起,并且里面的数值自动相加。
- VB,Open "LPT1:"控制打印机,如何检测打印机状态?
- 在线等待~~~~~~~! 如何动态监测一个变量的值
- 请问为什么我的listview里面显示不了图标
- ADODB.Connection不能创建对象。在线等待!100分求助!!
- 200分:请问如何实现像IE那样的“前进”“后退”功能?
- 各位英雄,谁有DataReport使用的例子,给小弟看看,高分酬谢
- 各位快来吧,开始发分了,保证有来必有分
再刷一次。
Dim iArray() as long '要排序的数组
Dim ArraySize As Long '数组大小
Dim ExchangeIndex As Long '进行两两比较时前一个元素的下标
Dim Exchange As long
'数组排序,(升序),冒泡排序法
Redim iArray(10) '数组大小由你的程序而定
ArraySize = UBound(iArray)
For i = 1 To ArraySize
For ExchangeIndex = 1 To ArraySize - i
'如果前一个元素大于后一个元素,就要交换这两个相邻元素
If iArray(ExchangeIndex) > iArray(ExchangeIndex + 1) Then
Exchange = iArray(ExchangeIndex)
iArray(ExchangeIndex) = iArray(ExchangeIndex + 1)
iArray(ExchangeIndex + 1) = Exchange
End If
Next
Next
临时做了一个,没有调试,你试一下吧,我这里只是提供了一个算法,至于数组赋值,使用静态数组还是动态数组你自己定吧。
'-------------------------------------------------------------------------------
'Shell——排序将输入的字符串排序后返回
'strText--输入的字符串
'strFind--分割标记
'-------------------------------------------------------------------------------
Public Function funShellSort(ByVal strText As String, ByVal strFind As String) As String
Dim varTmp() As String
Dim i As Long
Dim logCount As Long
Dim logIncrem As Long
Dim j As Long
Dim strTmp As String
'保证最后一个字符是分隔符
If Right(strText, 1) <> Trim(strFind) Then strText = strText & Trim(strFind)
'将数组的0替换掉
strText = "00" & strFind & strText
'将字符添入数组
varTmp = Split(strText, strFind, -1)
logCount = UBound(varTmp)
logIncrem = logCount \ 2
Do Until logIncrem < 1
For i = logIncrem To logCount - 1
strTmp = varTmp(i)
For j = i - logIncrem To 1 Step -logIncrem
If strTmp > varTmp(j) Then Exit For
varTmp(j + logIncrem) = varTmp(j)
Next j
varTmp(j + logIncrem) = strTmp
Next i
logIncrem = logIncrem \ 2
Loop
strTmp = ""
For i = 1 To UBound(varTmp) - 1
If i = UBound(varTmp) - 1 Then
strTmp = strTmp & varTmp(i)
Else
strTmp = strTmp & varTmp(i) & strFind
End If
Next
Erase varTmp
funShellSort = strTmp
End Function
For i = 0 To Ubound(arr)
List1.AddItem Cstr(arr(i))
Next i
For i = 0 To List1.ListCount - 1 '如果降序则For i = List1.ListCount-1 To 0 Step -1
arr(i) = Val(List1.List(i))
Next i