Task
 
Given a set of positive integers, write a function to order the integers in such a way that the concatenation of the numbers forms the largest possible integer and return this integer.

Use the following two sets of integers as tests   and   show your program output here.

   {1, 34, 3, 98, 9, 76, 45, 4}
   {54, 546, 548, 60}


Possible algorithms

 A solution could be found by trying all combinations and return the best. 
 Another way to solve this is to note that in the best arrangement, for any two adjacent original integers X and Y, the concatenation X followed by Y will be numerically greater than or equal to the concatenation Y followed by X.
 Yet another way to solve this is to pad the integers to the same size by repeating the digits then sort using these repeated integers as a sort key.


See also

   Algorithms: What is the most efficient way to arrange the given numbers to form the biggest number?
   Constructing the largest number possible by rearranging a list


#define MAXDIGITS 8
 
function catint( a as string, b as string ) as uinteger
    return valint(a+b)
end function
 
function grt( a as string, b as string ) as boolean
    return catint(a, b)>catint(b, a)
end function
 
sub shellsort( a() as string )
    'quick and dirty shellsort, not the focus of this exercise
    dim as uinteger gap = ubound(a), i, j, n=ubound(a)
    dim as string temp
    do 
        gap = int(gap / 2.2)
        for i=gap to n
            temp = a(i)
            j=i
            while j>=gap andalso grt( a(j-gap), temp )
                a(j) = a(j - gap)
                j -= gap
            wend 
            a(j) = temp
        next i
    loop until gap = 1
end sub
 
sub sort_and_print( a() as string )
    dim as uinteger i
    dim as string outstring = ""
    shellsort(a())
    for i=0 to ubound(a)
        outstring = a(i)+outstring
    next i
    print outstring
end sub
 
dim as string set1(8) = {"1", "34", "3", "98", "9", "76", "45", "4"}
dim as string set2(4) = {"54", "546", "548", "60"}
 
sort_and_print(set1())
sort_and_print(set2())