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,906 questions

51,838 answers

573 users

How to get the median of two sorted arrays in VB.NET

2 Answers

0 votes
Imports System

Public Class Program
    Private Shared Function findMedianOfTwoSortedArrays(ByVal arr1 As Integer(), ByVal arr2 As Integer()) As Double
        Dim size1 As Integer = arr1.Length
        Dim size2 As Integer = arr2.Length
        Dim merged As Integer() = New Integer(arr1.Length + arr2.Length - 1) {}

        For i As Integer = 0 To size1 - 1
            merged(i) = arr1(i)
        Next

        For i As Integer = 0 To size2 - 1
            merged(i + arr1.Length) = arr2(i)
        Next

        Array.Sort(merged)
        Dim total As Integer = size1 + size2
        Dim median As Double

        If total Mod 2 = 0 Then
            Dim mid1 As Integer = merged((total - 1) / 2)
            Dim mid2 As Integer = merged(total / 2)
            median = CDbl((mid1 + mid2)) / 2.0
        Else
            median = CDbl(merged(total / 2))
        End If

        Return median
    End Function

    Public Shared Sub Main(ByVal args As String())
        Dim arr1 As Integer() = New Integer() {1, 3, 5}
        Dim arr2 As Integer() = New Integer() {2, 4, 6}

        Dim median As Double = findMedianOfTwoSortedArrays(arr1, arr2)
        
		Console.Write("Median: " & median)
    End Sub
End Class



' run:
'
' Median: 3.5
'

 



answered Jul 19, 2023 by avibootz
0 votes
Imports System
Imports System.Threading.Interlocked

Public Class Program
    Private Shared Function findMedianOfTwoSortedArrays(ByVal arr1 As Integer(), ByVal arr2 As Integer()) As Double
        Dim size1 As Integer = arr1.Length
        Dim size2 As Integer = arr2.Length
        Dim i As Integer = 0, j As Integer = 0
        Dim mid1 As Integer = -1, mid2 As Integer = -1

        If (size2 + size1) Mod 2 = 1 Then
            For k As Integer = 0 To (size1 + size2) / 2
                If i <> size1 AndAlso j <> size2 Then
                    mid1 = If ((arr1(i) > arr2(j)), arr2(Math.Min(Increment(j), j - 1)), arr1(Math.Min(Increment(i), i - 1)))
                ElseIf i < size1 Then
                    mid1 = arr1(Math.Min(Increment(i), i - 1))
                Else
                    mid1 = arr2(Math.Min(Increment(j), j - 1))
                End If
            Next

            Return mid1
        Else
            For k As Integer = 0 To (size1 + size2) / 2
                mid2 = mid1
                If i <> size1 AndAlso j <> size2 Then
                    mid1 = If ((arr1(i) > arr2(j)), arr2(Math.Min(Increment(j), j - 1)), arr1(Math.Min(Increment(i), i - 1)))
                ElseIf i < size1 Then
                    mid1 = arr1(Math.Min(Increment(i), i - 1))
                Else
                    mid1 = arr2(Math.Min(Increment(j), j - 1))
                End If
            Next

            Return CDbl((mid1 + mid2)) / 2
        End If
    End Function

    Public Shared Sub Main(ByVal args As String())
        Dim arr1 As Integer() = New Integer() {1, 3, 5}
        Dim arr2 As Integer() = New Integer() {2, 4, 6}

        Dim median As Double = findMedianOfTwoSortedArrays(arr1, arr2)
        
		Console.Write("Median: " & median)
    End Sub
End Class



' run:
'
' Median: 3.5
'


 



answered Jul 19, 2023 by avibootz
...