如何使用vba實現冒泡法排序?其實挺簡單的
各位今日頭條的小夥伴大家好,這一期我們簡單瞭解一下排序的演算法
排序是學習程式設計最先要了解的演算法,不管是學習什麼程式語言,c、c#、python、java等等。瞭解一下排序的演算法實現有助於理解程式的執行。排序的演算法還是蠻多的,諸如冒泡法、選擇排序法、快速排序法等。
各種演算法的平均時間複雜度如下:
選擇排序
每次將後面的最小的找出來插入前面的已排好的序中
插入排序
逐個將後一個數加到前面的排好的序中
希爾排序
希爾排序又稱縮小增量排序,增量di可以有各種不同的取法,但最後一次排序時的增量必須為1,最簡單可取di+1=di/2(取小)
快速排序
又叫分割槽交換排序,是對氣泡排序方法的一種改進。
歸併排序
所謂歸併排序就是將兩個或兩個以上的有序資料序列合併成一個有序資料序列的過程
堆排序
氣泡排序
兩個兩個比較,將大的往後移
以下使用vba實現用冒泡法排序
Sub 升序()
Dim a
Dim c
c = Range(“a1”)。CurrentRegion。Rows。Count
For i = 1 To c
For j = i + 1 To c
If Cells(i, 1) > Cells(j, 1) Then
a = Cells(i, 1)
Cells(i, 1) = Cells(j, 1)
Cells(j, 1) = a
End If
Next
Next
End Sub
Sub 降序()
Dim a
Dim c
c = Range(“a1”)。CurrentRegion。Rows。Count
For i = 1 To c
For j = i + 1 To c
If Cells(i, 1) < Cells(j, 1) Then
a = Cells(i, 1)
Cells(i, 1) = Cells(j, 1)
Cells(j, 1) = a
End If
Next
Next
End Sub
部分dif圖片來源於網路,供大家學習參考,文章並不打算詳解每一種演算法,只是做個引子,各位有興趣的可以自行繼續學習