Sort array into wave like array
Because of the lexicographically smallest tie breaker restriction, you're basically funelled down this approach. In particular, you can't do without the sort.



"""Returns array in wave pattern by first sorting
the array and then swapping the adjacent digits"""


Docstrings are interface level documentation. They should describe what a function does, not how it does it. For a description of how a given implementation works, use comments.



array.sort()  ##sort the given array


Consider whether it's appropriate to do this in place (and so mangle the input array) or whether it would be better to use sorted



for i in range(0,(len(array)-1),2):  ##skip every second number
    array[i], array[i+1] = array[i+1], array[i]  ##swap adjacent numbers


You could rewrite this generators or using various tools from itertools if you wanted to avoid the explicit for loop. 

However, what you have is clearer about what's going on and, given that you are working from a list already, reasonable in terms of performance.



print wave([6,7,8,1,2,3,4])
print wave([5,1,3,4,2])
print wave([11,3,5,2,7,1,6,8,10,9,4])


I note that you're only checking odd length lists with no negatives and no duplicates. Consider more comprehensive testing.