Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,892 questions

51,823 answers

573 users

How to sort an array of 0s, 1s and 2s in VB.NET

1 Answer

0 votes
Imports System

Public Class Program
    Private Shared Sub Swap(Of T)(ByRef a As T, ByRef b As T)
        Dim temp As T = a
        a = b
        b = temp
    End Sub

	Public Shared Sub sort012Array(ByVal arr As Integer())
        Dim lo As Integer = 0
        Dim curr As Integer = 0
        Dim hi As Integer = arr.Length - 1

        While curr <= hi
            Select Case arr(curr)
                Case 0
                    Swap(arr(curr), arr(lo))
                    lo += 1
                    curr += 1
                Case 1
                    curr += 1
                Case 2
                    Swap(arr(hi), arr(curr))
                    hi -= 1
            End Select
        End While
    End Sub

    Public Shared Sub Main()
        Dim arr As Integer() = New Integer() {1, 2, 2, 0, 1, 1, 0, 2, 0, 1, 0, 0, 1}
		
        sort012Array(arr)

        For i As Integer = 0 To arr.Length - 1
            Console.Write(arr(i) & " ")
        Next
    End Sub
End Class




' run:
'
' 0 0 0 0 0 1 1 1 1 1 2 2 2
'

 



answered Apr 19, 2023 by avibootz

Related questions

1 answer 104 views
1 answer 118 views
1 answer 124 views
1 answer 129 views
2 answers 131 views
131 views asked Apr 19, 2023 by avibootz
1 answer 104 views
1 answer 113 views
...