+ Reply to Thread
Results 1 to 6 of 6

sort function - from ascending to descending

  1. #1
    Registered User
    Join Date
    03-07-2006
    Posts
    8

    sort function - from ascending to descending

    hi

    i have this bubblesort sub -

    Please Login or Register  to view this content.
    but at the moment it sorts all the elements in ascending order, and i need it biggest element first ie. descending...

    any idea how i change it, i guess it would be simple but i suppose it may need completely rewriting

    thanks


    jimmyp

  2. #2

    Re: sort function - from ascending to descending

    Hi
    try changing the test
    If List(i) > List(j)
    to
    If List(i) < List(j)

    (untested)
    Paul


  3. #3
    Registered User
    Join Date
    03-07-2006
    Posts
    8
    i tried that - it almost works but misses of the largest element, ie the one that should be at the start...the rest are all in descending order though

  4. #4
    Tom Ogilvy
    Guest

    Re: sort function - from ascending to descending

    It should work as demonstrated here:

    Sub BubbleDown()
    Dim First As Integer, Last As Integer
    Dim i As Integer, j As Integer
    Dim Temp As Integer
    List = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
    First = LBound(List)
    Last = UBound(List)
    For i = First To Last - 1
    For j = i + 1 To Last
    If List(i) < List(j) Then
    Temp = List(j)
    List(j) = List(i)
    List(i) = Temp
    End If
    Next j
    Next i
    For i = First To Last
    Debug.Print i, List(i)
    Next
    End Sub

    --
    Regards,
    Tom Ogilvy


    "jimmyp" wrote:

    >
    > i tried that - it almost works but misses of the largest element, ie
    > the one that should be at the start...the rest are all in descending
    > order though
    >
    >
    > --
    > jimmyp
    > ------------------------------------------------------------------------
    > jimmyp's Profile: http://www.excelforum.com/member.php...o&userid=32217
    > View this thread: http://www.excelforum.com/showthread...hreadid=522186
    >
    >


  5. #5
    Registered User
    Join Date
    03-07-2006
    Posts
    8
    tom essentially thats the same as what i posted except you have 'List = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)' whereas i pass in my array from another sub. Thing is its still missing the first element, but if i change back to > then it displays all the elements, just in the wrong order... its odd the only thing i change is the <.

  6. #6
    Tom Ogilvy
    Guest

    Re: sort function - from ascending to descending

    that is correct - I was showing you that it does work to reverse the order of
    an array.

    The only problem I can think of is that you recalcitrant value is being
    stored as a string rather than a number. As long as the string is never
    moved, you won't get an error. If your code does try to move it, then it
    will raise an error since temp is Dim'd as Integer.

    --
    Regards,
    Tom Ogilvy


    "jimmyp" wrote:

    >
    > tom essentially thats the same as what i posted except you have 'List =
    > Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)' whereas i pass in my array from
    > another sub. Thing is its still missing the first element, but if i
    > change back to > then it displays all the elements, just in the wrong
    > order... its odd the only thing i change is the <.
    >
    >
    > --
    > jimmyp
    > ------------------------------------------------------------------------
    > jimmyp's Profile: http://www.excelforum.com/member.php...o&userid=32217
    > View this thread: http://www.excelforum.com/showthread...hreadid=522186
    >
    >


+ Reply to Thread

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts

Search Engine Friendly URLs by vBSEO 3.6.0 RC 1