VB.Net program to sort an integer array using Radix sort

Here, we are going to learn how to sort an integer array using Radix sort in VB.Net?
Submitted by Nidhi, on December 10, 2020 [Last updated : March 06, 2023]

Sort an integer array using Radix sort

Here, we will create an array of integers and then read elements from the user. After we sort the array element using radix sort and then print sorted array on the console screen.

Program/Source Code:

The source code to sort an integer array using Radix sort is given below. The given program is compiled and executed successfully.

VB.Net code to sort an integer array using Radix sort

'VB.Net program to sort an integer array using Radix sort.

Module Module1
    Function GetMax(ByVal arr() As Integer, ByVal n As Integer) As Integer
        Dim max As Integer = arr(0)

        For i = 1 To n - 1 Step 1
            If (arr(i) > max) Then
                max = arr(i)
            End If
        Next
        GetMax = max
    End Function

    Sub countSort(ByVal arr() As Integer, ByVal n As Integer, ByVal exp As Integer)

        Dim output As Integer() = New Integer(n) {}
        Dim count As Integer() = New Integer(10) {}
        Dim t As Integer = 0


        For i = 0 To n - 1 Step 1

            t = (arr(i) \ exp) Mod 10
            count(t) = count(t) + 1
        Next

        For i = 1 To 9 Step 1
            count(i) = count(i) + count(i - 1)
        Next

        For i = (n - 1) To 0 Step -1
            output(count((arr(i) / exp) Mod 10) - 1) = arr(i)
            t = (arr(i) \ exp) Mod 10
            count(t) = count(t) - 1
        Next

        For i = 0 To n - 1 Step 1
            arr(i) = output(i)
        Next

    End Sub


    Sub RadixSort(ByVal arr() As Integer, ByVal n As Integer)
        Dim m As Integer = GetMax(arr, n)
        Dim exp As Integer = 1
        Dim val As Integer = 0

        val = m \ exp
        While (val > 0)
            countSort(arr, n, exp)
            exp = exp * 10
            val = m \ exp
        End While
    End Sub
    Sub Main()
        Dim arr As Integer() = New Integer(5) {}

        Console.WriteLine("Enter array elements: ")
        For i = 0 To 4 Step 1
            Console.Write("Element[{0}]: ", i)
            arr(i) = Integer.Parse(Console.ReadLine())
        Next

        RadixSort(arr, 5)

        Console.WriteLine("Array element after sorting: ")
        For i = 0 To 4 Step 1
            Console.Write("{0} ", arr(i))
        Next
        Console.WriteLine()
    End Sub
End Module

Output

Enter array elements:
Element[0]: 32
Element[1]: 43
Element[2]: 12
Element[3]: 65
Element[4]: 87
Array element after sorting:
12 32 43 65 87
Press any key to continue . . .

Explanation

In the above program, we created a module Module1 that contains a function Main(). In the Main() we created an array arr of five elements and we created three functions GetMax(), CountSort(), and RadixSort() to sort array elements using Radix Sort technique.

VB.Net Array Programs »





Comments and Discussions!

Load comments ↻





Copyright © 2024 www.includehelp.com. All rights reserved.