Visual Basic Code of the Week (COTW)
http://www.codeoftheweek.com
Issue #38
All content and source code is Copyright (c) 1998 by C&D Programming Corp. No part of this issue can be reprinted or distributed in any manner without express written permission of C&D Programming Corp.

If you are not a paid subscriber, you must have signed up for our free trial at http://www.codeoftheweek.com. Our ezine is not an unsolicited message (in other words a spam email).

If you do not wish to continue to receive this ezine, please email us at cancel@codeoftheweek.com

## Requirements for this Issue

The source code in this issue is designed for Visual Basic 5.0 and above. It is geared towards the intermediate to advanced programmer. If you have any questions about this issue, please email us at questions@codeoftheweek.com

## In this Issue

This issue introduces a QuickSort algorithm. It was written by Ray Cole with some small modifications by our programmers. This algorithm is often the fastest type of sorting algorithm. It can sort two dimensional arrays of nearly any data type. We chose to sacrifice some performance penalties in order to make the routine able to sort many data types (since Variant arrays are not super fast).

#### Declarations

```Public Sub QuickSort(ByRef arrSort As Variant, intSortCol As Integer)
```

#### Parameters

• arrSort - The two dimensional array to sort. Can be any data type.
• intSortCol - The column of the array to sort by. This should correspond to the second dimension of the array. If you have dimensioned the array as lArray(1 to 10, 1 to 2), the valid values would be 1 or 2.

#### Notes

This routine requires the second dimension to the be "column" counter. For example a two column 100 element array would be dimensioned as "Redim lArray(1 to 100, 1 to 2)".

None.

#### Sample Usage

This example shows how to use the QuickSort routine to sort a two dimensional array by each of its columns.

```    Dim lArray() As Long
Dim x As Integer
Dim y As Integer

ReDim lArray(1 To 10, 1 To 2)

' Fills the array with random data
For x = 1 To 2
For y = 1 To 10
lArray(y, x) = Rnd * 100
Next
Next

Debug.Print "Sorted on Column 1"

QuickSort lArray, 1    ' Sort the array using the first column

For y = 1 To 10
Debug.Print lArray(y, 1) & ", " & lArray(y, 2)
Next

Debug.Print "Sorted on Column 2"

QuickSort lArray, 2    ' Sort the array using the second column

For y = 1 To 10
Debug.Print lArray(y, 1) & ", " & lArray(y, 2)
Next
```

## Source Code

To see the source code for this issue you must be a subscriber to Code of the Week. If you are a subscriber the source code is available at the following address: http://www.codeoftheweek.com/membersonly/bi/0038.html

## This document is available on the web

Paid subscribers can view this issue in HTML format. There is no additional source or information in the HTML formatted document. It just looks a little better since we have included some HTML formatting. Just point your browser to http://www.codeoftheweek.com/membersonly/bi/0038.html

## Summary

That concludes this issue of COTW. We hope you find the source code useful in your development.

The below describes the ways you can supply us some feedback about COTW. We would like to see our members help mold COTW into the best Visual Basic source code resource available. But to do that we need your feedback about what you like and what you do not like about COTW.

If you are interested in advertising in COTW please email us at sponsor@codeoftheweek.com Our rates are VERY reasonable, actually they are almost FREE. We reach over three thousand Visual Basic developers each week.

## How to tell us what you think

If you have any suggestions for topics you would like to see covered or questions about this issue, please email them to info@codeoftheweek.com or use online feedback form at http://www.codeoftheweek.com/feedback.html.

If you have any source code you would like to submit for possible inclusion in COTW, please fill out our online submission form at http://www.codeoftheweek.com/submission.html.

## Contact Information

C&D Programming Corp.
PO Box 20128
Floral Park, NY 11002-0128
Phone or Fax: (212) 504-7945
Email: info@codeoftheweek.com
Web: http://www.codeoftheweek.com

## Subscription Update

Thank you for trying Code of the Week for Visual Basic.

Your free trial expires after you receive your fourth issue. If you want to continue to receive Code of the Week you can get 52 issues of COTW for only \$19.95. This is a full year of Visual Basic source code and information to help with all your development. So don't wait, subscribe now! The quickest way to subscribe is to jump to our online order form at http://www.codeoftheweek.com/order.html