相关知识点:
选择排序法:在剩余数字中找出一个最大的数字,填入第一个空白方格里,如此反复,直到没有剩余数字。缺点是运行效率太低
其他方法:堆排序,基数排序,快速排序,希尔排序,桶排序,归并排序,二叉树排序
application.ScreenUpdating=False:关闭屏幕刷新提高运行效率,恢复刷新=True
Range.Sort: 内置的排序方法
例1按照GDP对国家进行排名,从大到小(谁大谁是第一行,数据交换)
Sub mysort()
Dim k as long, j as long, t ‘t为变体类型,有数字和字符
For k=3 To 11
For j=k+1 To 12 ‘内循环k+1进行比较
If cells(j,3) >cells(k,3) Then ‘比较交换,交换必须有中间变量,否则出错
t=cells(j,2) ‘先把要上移的值交给变量,把下移值直接交换
cells(j,2)=cells(k,2)
cells(k,2)=t
t=cells(j,3)
cells(j,3)=cells(k,3)
cells(k,3)=t
End If
Next j
Next k
End Sub
例2 双循环排序应用,缺点效率低(50万次循环)
Sub mysortTime()
Dim j&,k&,p&,t as date
t=now()
application.ScreenUpdating=False ‘关闭屏幕刷新提高运行效率
For j=1 To 999
For k=j+1 To 1000
If cells(j,2) <cells(k,2)
p=cells(j,2)
cells(j,2)=cells(k,2)
cells(k,2)=p
End If
Next k
Next j
Application.ScreenUpdating=True
Msgbox datadiff(“s”,t,time()) &”秒” ‘返回12s
End Sub