Manage Learn to apply best practices and optimize your operations.

# A 2-D Bubble Sort Subroutine

Sort routines for a single list of values have been around for awhile, but
recently I needed to sort a list of form names and keep the corresponding list
of form aliases correctly associated.

I modified a Bubble Sort routine I've used in the past to input two variant
arrays, sort the first in ascending order, and reorder the second array to
correspond with each item's original first-array partner.
' Paste the Sub into the Declarations section of a form, button, etc.

Sub Bubble_Sort2 (ary1 As Variant, ary2 As Variant)

' Returns sorted array for ary1 and corresponding values for ary2
' based on a complexity of O(n^2) using a bubble sort
Dim top1, top2, bot1, bot2, cur, cur2 As Integer
Dim tmp1, tmp2 As Variant
If Not Isarray(ary1) Then Print "SORT: First variant not an array" :Exit Sub
If Not Isarray(ary2) Then Print "SORT: Second variant not an array" :Exit Sub
top1=Ubound (ary1)
top2=Ubound (ary2)
bot1=Lbound (ary1)
bot2=Lbound (ary2)
If top1=bot1 Then Print "SORT: Single-value array" : Exit Sub
If (top1-bot1)<>(top2-bot2) Then Print "SORT: Arrays not same size" : Exit Sub
For cur=bot1 To top1
cur2=cur
Do While cur2 > bot1 'bubble up
If (ary1(cur2) > ary1(cur2-1)) Then
Exit Do
Else
'swap
tmp1=ary1(cur2)
tmp2=ary2(cur2)
ary1(cur2)=ary1(cur2-1)
ary2(cur2)=ary2(cur2-1)
ary1(cur2-1)=tmp1
ary2(cur2-1)=tmp2
End If
cur2=cur2-1
Loop
Next
End Sub

' A button action on a form with four multi-value text fields; Input_1,
Input_2, Output_1 and Output_2
' Enter several unsorted values in Input_1 and an identical number of values
in Input_2, and click the button.
' The 1st set of values will be sorted and placed into Output_1 and the 2nd
set will be placed into Output_2
' in the order they now correspond with their original counterparts from the
1st set.

Sub Click(Source As Button)
Dim ws As New NotesUIWorkspace
Dim ui As NotesUIDocument
Dim doc As NotesDocument
Dim itm1, itm2 As NotesItem
Dim v1, v2 As Variant
Dim ary() As Variant
Set ui = ws.CurrentDocument
Set doc = ui.Document
Set itm1 = doc.GetFirstItem("Input_1")
Set itm2 = doc.GetFirstItem("Input_2")
ct%=0
v1 = itm1.Values
v2 = itm2.Values
Call Bubble_Sort2 (v1, v2)
doc.Output_1 = v1
doc.Output_2 = v2
End Sub

#### Start the conversation

Send me notifications when other members comment.

## SearchWindowsServer

• ### February Patch Tuesday resolves IE zero-day

Microsoft released security updates for 99 unique vulnerabilities, including an Internet Explorer flaw the company had notified ...

• ### What's new with PowerShell error handling?

PowerShell 7 introduces a new cmdlet to assist administrators who wanted a better way to find out what broke in the scripts they ...

• ### Why move to PowerShell 7 from Windows PowerShell?

The next major release of this venerable automation tool features performance improvements and a bevy of new features that could ...

## Search400

• ### iSeries tutorials

Search400.com's tutorials provide in-depth information on the iSeries. Our iSeries tutorials address areas you need to know about...

• ### V6R1 upgrade planning checklist

When upgrading to V6R1, make sure your software will be supported, your programs will function and the correct PTFs have been ...

• ### Connecting multiple iSeries systems through DDM

Working with databases over multiple iSeries systems can be simple when remotely connecting logical partitions with distributed ...

## SearchDataCenter

• ### Initiative aims to improve data center incident reporting

The Data Center Incident Reporting Network hopes to pull back the smoke screen on software and hardware issues to improve ...

• ### A guide to GPU implementation and activation

Data center GPU usage goes beyond hardware. Admins must work with vendors and developers to have the right software architecture ...

• ### Key components for negotiating an HPC colocation contract

When it comes to HPC colocation, there are specialized areas to cover in a service-level agreement. Review provider protocols for...

## SearchContentManagement

• ### Test yourself on the differences between SharePoint and OneDrive

Businesses use Microsoft SharePoint and OneDrive capabilities for a number of reasons. Test your knowledge on the differences ...

• ### Akeneo rolls out newest version of PIM software

Akeneo PIM version 4.0 features digital asset manager, API-integrated connection modules and AI attribute mapping to better ...

• ### Get to know 4 workflow automation tools

Workflow automation can benefit businesses by making manual processes digital, giving employees more time to work on other tasks....

Close