首頁歷史 > 正文

如何使用vba實現冒泡法排序?其實挺簡單的

2021-12-30由 阿奇的世界 發表于 歷史

各位今日頭條的小夥伴大家好,這一期我們簡單瞭解一下排序的演算法

排序是學習程式設計最先要了解的演算法,不管是學習什麼程式語言,c、c#、python、java等等。瞭解一下排序的演算法實現有助於理解程式的執行。排序的演算法還是蠻多的,諸如冒泡法、選擇排序法、快速排序法等。

各種演算法的平均時間複雜度如下:

如何使用vba實現冒泡法排序?其實挺簡單的

選擇排序

每次將後面的最小的找出來插入前面的已排好的序中

如何使用vba實現冒泡法排序?其實挺簡單的

插入排序

逐個將後一個數加到前面的排好的序中

如何使用vba實現冒泡法排序?其實挺簡單的

希爾排序

希爾排序又稱縮小增量排序,增量di可以有各種不同的取法,但最後一次排序時的增量必須為1,最簡單可取di+1=di/2(取小)

如何使用vba實現冒泡法排序?其實挺簡單的

快速排序

又叫分割槽交換排序,是對氣泡排序方法的一種改進。

如何使用vba實現冒泡法排序?其實挺簡單的

歸併排序

所謂歸併排序就是將兩個或兩個以上的有序資料序列合併成一個有序資料序列的過程

如何使用vba實現冒泡法排序?其實挺簡單的

堆排序

如何使用vba實現冒泡法排序?其實挺簡單的

氣泡排序

兩個兩個比較,將大的往後移

如何使用vba實現冒泡法排序?其實挺簡單的

以下使用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

如何使用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

如何使用vba實現冒泡法排序?其實挺簡單的

部分dif圖片來源於網路,供大家學習參考,文章並不打算詳解每一種演算法,只是做個引子,各位有興趣的可以自行繼續學習

頂部