http://v.youku.com/v_show/id_XMjU4NTcwMDIw.html
[b][flash=480,400]http://player.youku.com/player.php/sid/XMjU4NTcwMDIw/v.swf[/flash][/b]
[b][flv=480,400][b][flash=480,400]http://player.youku.com/player.php/sid/XMjU4NTcwMDIw/v.swf[/flash] [/b][/flv]
[/b]
看完了吧,再看一篇,,發現這個都是倒序向前比較,步長是span。
自己強化學習一下:
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
ListBox1.Items.Clear()
ListBox2.Items.Clear()
Dim i, j, span As Short
Dim a(10) As String, temp As String
Randomize()
For i = 0 To a.Length - 1
a(i) = Int(10 * Rnd())
ListBox1.Items.Add(a(i))
Next
span = a.Length \ 2
Do While span > 0
For i = span To a.Length - 1
For j = i - span To 0 Step -span
If a(j) <= a(j + span) Then Exit For
temp = a(j)
a(j) = a(j + span)
a(j + span) = temp
Next
Next
span = span \ 2
Loop
For i = 0 To a.Length - 1
ListBox2.Items.Add(a(i))
Next
End Sub
End Class
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZwpmLykzM38FOyQDN0YzM0MTMvwFMz8CX3AjMxAjMvw1ckF2bsBXdvwFdl5mLuR2cj5Set1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)