• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 332
  • Last Modified:

Quicker Sort

I am currently doing a lot of bubble sorting of arrays.  Is there a faster way than this:
    For x = 0 To UBound(SiteRslts, 2) - 2
        For y = x + 1 To UBound(SiteRslts, 2) - 1
            If CStr(SiteRslts(6, x)) > CStr(SiteRslts(6, y)) Then
                For z = 0 To 6
                    TempArr(z) = SiteRslts(z, x)
                    SiteRslts(z, x) = SiteRslts(z, y)
                    SiteRslts(z, y) = TempArr(z)
                Next
            End If
        Next
    Next

Open in new window

0
Bob Schneider
Asked:
Bob Schneider
4 Solutions
 
Bob SchneiderCo-OwnerAuthor Commented:
That is a nice resource, thank you.  It is clear that I am using an exchange sort.   Can I assume that, for a relatively small array size, the Quick Sort is a better algorithm?  If so, can I get some help applying this to the structure of my arrays.  Basically I would like to write a function that looks at a dynamic two-dimensional array such as SiteRslts(x, y) and sort based on data type at any dimension x.  The example I provided sorts based on string data types but I would also need one sorting by date, integer, and double or single.
0
 
TommySzalapskiCommented:
For a relatively small array size, it doesn't really matter what sort you use.
Quicksort will be a lot faster than Bubblesort (which is what you are using). So will any of the nlg(n) sorts.

However, if you are using VB/asp, then why not use the built in sorts?
You could use IComparator or the Array.OrderBy function and pass it the element that you want to sort by. (I'm not a VB programmer so I don't know the exact syntax off the top of my head).
This may help
http://stackoverflow.com/questions/1751768/sort-an-array-of-structures-in-net
0
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
Robert SchuttSoftware EngineerCommented:
0
 
sybeCommented:
It is probably much faster to sort it in a recordset. You can create a ADODB.RecordSet on the fly and use the Sort Property on the recordset.
0
 
Bob SchneiderCo-OwnerAuthor Commented:
Problem with a recordset sort is that some of the array fields are being populated via a function (to avoid getting more complicated of a join than my cerebellum can manage).  I will consider that though, thanks...

Still haven't checked out the 4Guys...solution yet...very soon..
0
 
Bob SchneiderCo-OwnerAuthor Commented:
Learned a lot about sorting.  Thanks all!
0

Featured Post

Get expert help—faster!

Need expert help—fast? Use the Help Bell for personalized assistance getting answers to your important questions.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now