Solved

Quicker Sort

Posted on 2013-01-26
7
282 Views
Last Modified: 2013-02-03
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
Comment
Question by:Bob Schneider
7 Comments
 
LVL 84

Assisted Solution

by:ozo
ozo earned 125 total points
ID: 38822245
0
 

Author Comment

by:Bob Schneider
ID: 38822390
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
 
LVL 37

Assisted Solution

by:TommySzalapski
TommySzalapski earned 125 total points
ID: 38822787
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
Announcing the Most Valuable Experts of 2016

MVEs are more concerned with the satisfaction of those they help than with the considerable points they can earn. They are the types of people you feel privileged to call colleagues. Join us in honoring this amazing group of Experts.

 
LVL 35

Accepted Solution

by:
Robert Schutt earned 200 total points
ID: 38822830
0
 
LVL 28

Assisted Solution

by:sybe
sybe earned 50 total points
ID: 38835350
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
 

Author Comment

by:Bob Schneider
ID: 38835800
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
 

Author Closing Comment

by:Bob Schneider
ID: 38848654
Learned a lot about sorting.  Thanks all!
0

Featured Post

Announcing the Most Valuable Experts of 2016

MVEs are more concerned with the satisfaction of those they help than with the considerable points they can earn. They are the types of people you feel privileged to call colleagues. Join us in honoring this amazing group of Experts.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Embarcadero C++ builder XE10.1 Berlin TRegistry declaration 1 31
Math Equation 23 90
SQL Insert parts by customer 12 35
Html CheckBox obtain Its Value 5 19
This is about my first experience with programming Arduino.
Whether you’re a college noob or a soon-to-be pro, these tips are sure to help you in your journey to becoming a programming ninja and stand out from the crowd.
With the power of JIRA, there's an unlimited number of ways you can customize it, use it and benefit from it. With that in mind, there's bound to be things that I wasn't able to cover in this course. With this summary we'll look at some places to go…

825 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question