The Selection Sorting Algorithm in VBScript

  • Time:2020-09-17 14:26:24
  • Class:Weblog
  • Read:18

The selection sort, similar to insertion sort, is one of the simple sorting algorithm that has O(N^2) time complexity. The selection sorting algorithm is quadratic, thus not efficient when the items to sort is large.

The selection sort works by choosing a minimal element in the unsorted list and append the element to the sorted list – which is done by swapping the element beyond the end of the sorted part.

For example, given the array: [3, 5, 2, 6, 1, 3, 4, 6, 9], we can simulate the Selection Sort algorithm in the following process:

1
2
3
4
5
6
7
8
9
10
Sorted: [] Unsorted: [3, 5, 2, 6, 1, 3, 4, 6, 9] // min = 1 in the Unsorted
Sorted: [1, ] Unsorted: [3, 5, 2, 6, 3, 4, 6, 9] // min = 2 in the Unsorted
Sorted: [1, 2] Unsorted: [3, 5, 6, 3, 4, 6, 9] // min = 3 in the Unsorted
Sorted: [1, 2, 3] Unsorted: [5, 6, 3, 4, 6, 9] // min = 3 in the Unsorted
Sorted: [1, 2, 3, 3] Unsorted: [5, 6, 4, 6, 9] // min = 4 in the Unsorted
Sorted: [1, 2, 3, 3, 4] Unsorted: [5, 6, 6, 9] // min = 5 in the Unsorted
Sorted: [1, 2, 3, 3, 4, 5] Unsorted: [6, 6, 9] // min = 6 in the Unsorted
Sorted: [1, 2, 3, 3, 4, 5, 6] Unsorted: [6, 9] // min = 6 in the Unsorted
Sorted: [1, 2, 3, 3, 4, 5, 6, 6] Unsorted: [9] // min = 9 in the Unsorted
Sorted: [1, 2, 3, 3, 4, 5, 6, 6, 9] Unsorted: [] // Done.
Sorted: [] Unsorted: [3, 5, 2, 6, 1, 3, 4, 6, 9] // min = 1 in the Unsorted
Sorted: [1, ] Unsorted: [3, 5, 2, 6, 3, 4, 6, 9] // min = 2 in the Unsorted
Sorted: [1, 2] Unsorted: [3, 5, 6, 3, 4, 6, 9] // min = 3 in the Unsorted
Sorted: [1, 2, 3] Unsorted: [5, 6, 3, 4, 6, 9] // min = 3 in the Unsorted
Sorted: [1, 2, 3, 3] Unsorted: [5, 6, 4, 6, 9] // min = 4 in the Unsorted
Sorted: [1, 2, 3, 3, 4] Unsorted: [5, 6, 6, 9] // min = 5 in the Unsorted
Sorted: [1, 2, 3, 3, 4, 5] Unsorted: [6, 6, 9] // min = 6 in the Unsorted
Sorted: [1, 2, 3, 3, 4, 5, 6] Unsorted: [6, 9] // min = 6 in the Unsorted
Sorted: [1, 2, 3, 3, 4, 5, 6, 6] Unsorted: [9] // min = 9 in the Unsorted
Sorted: [1, 2, 3, 3, 4, 5, 6, 6, 9] Unsorted: [] // Done.

Translating to VBScript, we have the following Selection Sorting Algorithm:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Dim Nums: Nums = Array(3, 5, 2, 6, 1, 3, 4, 6, 9)
 
Sub SelectionSort(ByRef Nums)
    For i = LBound(Nums) To UBound(Nums) - 1
        Dim min: min = i
        For j = i + 1 To UBound(Nums)
            If Nums(j) < Nums(min) Then
                min = j
            End If 
        Next
        If min <> i Then
            Dim t: t = Nums(min)
            Nums(min) = Nums(i)
            Nums(i) = t
        End If
    Next
End Sub
 
SelectionSort Nums
For i = LBound(Nums) To UBound(Nums) 
    WScript.Echo Nums(i)
Next
Dim Nums: Nums = Array(3, 5, 2, 6, 1, 3, 4, 6, 9)

Sub SelectionSort(ByRef Nums)
	For i = LBound(Nums) To UBound(Nums) - 1
		Dim min: min = i
		For j = i + 1 To UBound(Nums)
			If Nums(j) < Nums(min) Then
				min = j
			End If 
		Next
		If min <> i Then
			Dim t: t = Nums(min)
			Nums(min) = Nums(i)
			Nums(i) = t
		End If
	Next
End Sub

SelectionSort Nums
For i = LBound(Nums) To UBound(Nums) 
	WScript.Echo Nums(i)
Next

One advantage of Selection Sorting Algorithm is that it has at most (n-1) swaps when sorting n elements.

--EOF (The Ultimate Computing & Technology Blog) --

Recommend:
U.S. mortgage applications continue slide amid surging interest
Russian, UAE presidents discuss bilateral cooperation over phone
Hate crimes in U.S. Los Angeles County rise to highest level sin
Chinese mainland reports 4,031 new local confirmed COVID-19 case
Biden attends vigil for victims of gun violence in U.S.
Dina Boluarte sworn in as Peru's new president, calls for "
PAP special operations soldiers in field training
Commentary: Why Belt and Road cooperation matters to stronger Ch
Senior Guangdong provincial legislator under probe
EU new sanctions target Russia's armed forces, drone supply
Share:Facebook Twitter
Comment list
Comment add