Standard sorting networks for small values of n

前端 未结 3 1289
感动是毒
感动是毒 2020-12-29 10:26

I\'m looking for a sorting network implementation of a 5-element sort, but since I couldn\'t find a good reference on SO, I\'d like to ask for sorting networks for all small

3条回答
  •  小蘑菇
    小蘑菇 (楼主)
    2020-12-29 10:48

    Pick one from each section, presumably whichever runs fastest on your hardware since we're firmly in the realm of "fiendish optimization": http://smarterrecall.com/networks.html , reproduced below:

    I created this site to list all possible optimal sorting networks up to 6-inputs written using a program in matlab. The longest run-time is for 5-inputs at 45 seconds. If you are interested in contacting me, I can be reached at rpl1 [AT] rice [DOT] edu Cheers, Richard L.

    ----------
    
     - 2-input: 1 network
    
        [[1 2]]
    
    
    ----------
    
    
     - 3-input: 6 networks
    
    [[1 2][1 3][2 3]]
    [[1 2][2 3][1 2]]
    [[1 3][1 2][2 3]]
    [[1 3][2 3][1 2]]
    [[2 3][1 2][2 3]]
    [[2 3][1 3][1 2]]
    
    
    ----------
    
     - 4-input: 3 networks
    
    [[1 2][3 4][1 3][2 4][2 3]]
    [[1 3][2 4][1 2][3 4][2 3]]
    [[1 4][2 3][1 2][3 4][2 3]]
    
    
    ----------
    
     - 5-input: 180 networks
    
        [[1 2][3 4][1 3][2 5][1 2][3 4][2 3][4 5][3 4]]
        [[1 2][3 4][1 3][2 5][2 3][4 5][1 2][3 4][2 3]]
        [[1 2][3 4][1 3][4 5][1 4][2 3][2 4][3 5][3 4]]
        [[1 2][3 4][1 3][4 5][2 5][3 4][1 3][2 4][2 3]]
        [[1 2][3 4][1 4][2 5][2 3][4 5][1 2][3 4][2 3]]
        [[1 2][3 4][1 4][3 5][1 3][2 5][2 3][4 5][3 4]]
        [[1 2][3 4][1 5][2 3][1 2][4 5][2 4][3 5][3 4]]
        [[1 2][3 4][1 5][2 4][1 3][2 5][2 3][4 5][3 4]]
        [[1 2][3 4][1 5][2 4][2 3][4 5][1 2][3 4][2 3]]
        [[1 2][3 4][2 3][4 5][1 4][3 5][1 2][3 4][2 3]]
        [[1 2][3 4][2 4][3 5][1 2][4 5][1 3][2 4][2 3]]
        [[1 2][3 4][2 4][3 5][1 3][2 5][2 3][4 5][3 4]]
        [[1 2][3 5][1 3][2 4][1 2][3 5][2 3][4 5][3 4]]
        [[1 2][3 5][1 3][2 4][2 3][4 5][1 2][3 4][2 3]]
        [[1 2][3 5][1 3][4 5][1 4][2 3][2 4][3 5][3 4]]
        [[1 2][3 5][1 3][4 5][2 5][3 4][1 3][2 4][2 3]]
        [[1 2][3 5][1 4][2 3][1 2][4 5][2 4][3 5][3 4]]
        [[1 2][3 5][1 4][2 5][1 3][2 4][2 3][4 5][3 4]]
        [[1 2][3 5][1 4][2 5][2 3][4 5][1 2][3 4][2 3]]
        [[1 2][3 5][1 5][2 4][2 3][4 5][1 2][3 4][2 3]]
        [[1 2][3 5][1 5][3 4][1 3][2 4][2 3][4 5][3 4]]
        [[1 2][3 5][2 3][4 5][1 4][3 5][1 2][3 4][2 3]]
        [[1 2][3 5][2 5][3 4][1 2][4 5][1 3][2 4][2 3]]
        [[1 2][3 5][2 5][3 4][1 3][2 4][2 3][4 5][3 4]]
        [[1 2][4 5][1 3][2 4][1 2][3 5][2 3][4 5][3 4]]
        [[1 2][4 5][1 3][2 5][1 4][2 3][2 4][3 5][3 4]]
        [[1 2][4 5][1 3][2 5][2 4][3 5][1 2][3 4][2 3]]
        [[1 2][4 5][1 4][2 3][1 2][4 5][2 4][3 5][3 4]]
        [[1 2][4 5][1 4][2 3][2 4][3 5][1 2][3 4][2 3]]
        [[1 2][4 5][1 4][3 5][1 3][2 4][2 3][4 5][3 4]]
        [[1 2][4 5][1 4][3 5][2 5][3 4][1 3][2 4][2 3]]
        [[1 2][4 5][1 5][2 3][2 4][3 5][1 2][3 4][2 3]]
        [[1 2][4 5][1 5][3 4][1 3][2 4][2 3][4 5][3 4]]
        [[1 2][4 5][2 4][3 5][1 3][4 5][1 2][3 4][2 3]]
        [[1 2][4 5][2 5][3 4][1 2][4 5][1 3][2 4][2 3]]
        [[1 2][4 5][2 5][3 4][1 3][2 4][2 3][4 5][3 4]]
        [[1 3][2 4][1 2][3 5][1 3][2 4][2 3][4 5][3 4]]
        [[1 3][2 4][1 2][3 5][2 3][4 5][1 2][3 4][2 3]]
        [[1 3][2 4][1 2][4 5][1 4][2 3][2 4][3 5][3 4]]
        [[1 3][2 4][1 2][4 5][2 4][3 5][1 2][3 4][2 3]]
        [[1 3][2 4][1 4][2 5][1 2][3 5][2 3][4 5][3 4]]
        [[1 3][2 4][1 4][3 5][2 3][4 5][1 2][3 4][2 3]]
        [[1 3][2 4][1 5][2 3][1 2][4 5][2 4][3 5][3 4]]
        [[1 3][2 4][1 5][3 4][1 2][3 5][2 3][4 5][3 4]]
        [[1 3][2 4][1 5][3 4][2 3][4 5][1 2][3 4][2 3]]
        [[1 3][2 4][2 3][4 5][1 4][3 5][1 2][3 4][2 3]]
        [[1 3][2 4][2 5][3 4][1 2][3 5][2 3][4 5][3 4]]
        [[1 3][2 4][2 5][3 4][1 3][4 5][1 2][3 4][2 3]]
        [[1 3][2 5][1 2][3 4][1 3][2 5][2 3][4 5][3 4]]
        [[1 3][2 5][1 2][3 4][2 3][4 5][1 2][3 4][2 3]]
        [[1 3][2 5][1 2][4 5][1 4][2 3][2 4][3 5][3 4]]
        [[1 3][2 5][1 2][4 5][2 4][3 5][1 2][3 4][2 3]]
        [[1 3][2 5][1 4][2 3][1 2][4 5][2 4][3 5][3 4]]
        [[1 3][2 5][1 4][3 5][1 2][3 4][2 3][4 5][3 4]]
        [[1 3][2 5][1 4][3 5][2 3][4 5][1 2][3 4][2 3]]
        [[1 3][2 5][1 5][2 4][1 2][3 4][2 3][4 5][3 4]]
        [[1 3][2 5][1 5][3 4][2 3][4 5][1 2][3 4][2 3]]
        [[1 3][2 5][2 3][4 5][1 4][3 5][1 2][3 4][2 3]]
        [[1 3][2 5][2 4][3 5][1 2][3 4][2 3][4 5][3 4]]
        [[1 3][2 5][2 4][3 5][1 3][4 5][1 2][3 4][2 3]]
        [[1 3][4 5][1 2][3 4][1 3][2 5][2 3][4 5][3 4]]
        [[1 3][4 5][1 2][3 5][1 4][2 3][2 4][3 5][3 4]]
        [[1 3][4 5][1 2][3 5][2 5][3 4][1 3][2 4][2 3]]
        [[1 3][4 5][1 4][2 3][1 2][4 5][2 4][3 5][3 4]]
        [[1 3][4 5][1 4][2 3][2 4][3 5][1 2][3 4][2 3]]
        [[1 3][4 5][1 4][2 5][1 2][3 4][2 3][4 5][3 4]]
        [[1 3][4 5][1 4][2 5][2 4][3 5][1 2][3 4][2 3]]
        [[1 3][4 5][1 5][2 3][2 4][3 5][1 2][3 4][2 3]]
        [[1 3][4 5][1 5][2 4][1 2][3 4][2 3][4 5][3 4]]
        [[1 3][4 5][2 4][3 5][1 2][3 4][2 3][4 5][3 4]]
        [[1 3][4 5][2 4][3 5][1 3][4 5][1 2][3 4][2 3]]
        [[1 3][4 5][2 5][3 4][1 2][4 5][1 3][2 4][2 3]]
        [[1 4][2 3][1 2][3 5][1 3][2 4][2 3][4 5][3 4]]
        [[1 4][2 3][1 2][3 5][2 3][4 5][1 2][3 4][2 3]]
        [[1 4][2 3][1 2][4 5][1 4][2 3][2 4][3 5][3 4]]
        [[1 4][2 3][1 2][4 5][2 4][3 5][1 2][3 4][2 3]]
        [[1 4][2 3][1 3][2 5][1 2][4 5][2 4][3 5][3 4]]
        [[1 4][2 3][1 3][4 5][2 4][3 5][1 2][3 4][2 3]]
        [[1 4][2 3][1 5][2 4][1 2][3 5][2 3][4 5][3 4]]
        [[1 4][2 3][1 5][3 4][1 2][3 5][2 3][4 5][3 4]]
        [[1 4][2 3][1 5][3 4][2 3][4 5][1 2][3 4][2 3]]
        [[1 4][2 3][2 4][3 5][1 3][4 5][1 2][3 4][2 3]]
        [[1 4][2 3][2 5][3 4][1 2][3 5][2 3][4 5][3 4]]
        [[1 4][2 3][2 5][3 4][1 3][4 5][1 2][3 4][2 3]]
        [[1 4][2 5][1 2][3 4][1 3][2 5][2 3][4 5][3 4]]
        [[1 4][2 5][1 2][3 4][2 3][4 5][1 2][3 4][2 3]]
        [[1 4][2 5][1 2][3 5][1 3][2 4][2 3][4 5][3 4]]
        [[1 4][2 5][1 2][3 5][2 3][4 5][1 2][3 4][2 3]]
        [[1 4][2 5][1 3][2 4][1 2][3 5][2 3][4 5][3 4]]
        [[1 4][2 5][1 3][4 5][1 2][3 4][2 3][4 5][3 4]]
        [[1 4][2 5][1 3][4 5][2 4][3 5][1 2][3 4][2 3]]
        [[1 4][2 5][1 5][2 3][1 2][3 4][2 3][4 5][3 4]]
        [[1 4][2 5][1 5][3 4][2 3][4 5][1 2][3 4][2 3]]
        [[1 4][2 5][2 3][4 5][1 2][3 4][2 3][4 5][3 4]]
        [[1 4][2 5][2 3][4 5][1 4][3 5][1 2][3 4][2 3]]
        [[1 4][2 5][2 4][3 5][1 3][4 5][1 2][3 4][2 3]]
        [[1 4][3 5][1 2][3 4][1 3][2 5][2 3][4 5][3 4]]
        [[1 4][3 5][1 2][4 5][1 3][2 4][2 3][4 5][3 4]]
        [[1 4][3 5][1 2][4 5][2 5][3 4][1 3][2 4][2 3]]
        [[1 4][3 5][1 3][2 4][1 2][3 5][2 3][4 5][3 4]]
        [[1 4][3 5][1 3][2 4][2 3][4 5][1 2][3 4][2 3]]
        [[1 4][3 5][1 3][2 5][1 2][3 4][2 3][4 5][3 4]]
        [[1 4][3 5][1 3][2 5][2 3][4 5][1 2][3 4][2 3]]
        [[1 4][3 5][1 5][2 3][1 2][3 4][2 3][4 5][3 4]]
        [[1 4][3 5][1 5][2 4][2 3][4 5][1 2][3 4][2 3]]
        [[1 4][3 5][2 3][4 5][1 2][3 4][2 3][4 5][3 4]]
        [[1 4][3 5][2 3][4 5][1 4][3 5][1 2][3 4][2 3]]
        [[1 4][3 5][2 5][3 4][1 2][4 5][1 3][2 4][2 3]]
        [[1 5][2 3][1 2][3 4][1 3][2 5][2 3][4 5][3 4]]
        [[1 5][2 3][1 2][3 4][2 3][4 5][1 2][3 4][2 3]]
        [[1 5][2 3][1 2][4 5][1 4][2 3][2 4][3 5][3 4]]
        [[1 5][2 3][1 2][4 5][2 4][3 5][1 2][3 4][2 3]]
        [[1 5][2 3][1 3][2 4][1 2][4 5][2 4][3 5][3 4]]
        [[1 5][2 3][1 3][4 5][2 4][3 5][1 2][3 4][2 3]]
        [[1 5][2 3][1 4][2 5][1 2][3 4][2 3][4 5][3 4]]
        [[1 5][2 3][1 4][3 5][1 2][3 4][2 3][4 5][3 4]]
        [[1 5][2 3][1 4][3 5][2 3][4 5][1 2][3 4][2 3]]
        [[1 5][2 3][2 4][3 5][1 2][3 4][2 3][4 5][3 4]]
        [[1 5][2 3][2 4][3 5][1 3][4 5][1 2][3 4][2 3]]
        [[1 5][2 3][2 5][3 4][1 3][4 5][1 2][3 4][2 3]]
        [[1 5][2 4][1 2][3 4][1 3][2 5][2 3][4 5][3 4]]
        [[1 5][2 4][1 2][3 4][2 3][4 5][1 2][3 4][2 3]]
        [[1 5][2 4][1 2][3 5][1 3][2 4][2 3][4 5][3 4]]
        [[1 5][2 4][1 2][3 5][2 3][4 5][1 2][3 4][2 3]]
        [[1 5][2 4][1 3][2 5][1 2][3 4][2 3][4 5][3 4]]
        [[1 5][2 4][1 3][4 5][1 2][3 4][2 3][4 5][3 4]]
        [[1 5][2 4][1 3][4 5][2 4][3 5][1 2][3 4][2 3]]
        [[1 5][2 4][1 4][2 3][1 2][3 5][2 3][4 5][3 4]]
        [[1 5][2 4][1 4][3 5][2 3][4 5][1 2][3 4][2 3]]
        [[1 5][2 4][2 3][4 5][1 2][3 4][2 3][4 5][3 4]]
        [[1 5][2 4][2 3][4 5][1 4][3 5][1 2][3 4][2 3]]
        [[1 5][2 4][2 5][3 4][1 3][4 5][1 2][3 4][2 3]]
        [[1 5][3 4][1 2][3 5][1 3][2 4][2 3][4 5][3 4]]
        [[1 5][3 4][1 2][4 5][1 3][2 4][2 3][4 5][3 4]]
        [[1 5][3 4][1 2][4 5][2 5][3 4][1 3][2 4][2 3]]
        [[1 5][3 4][1 3][2 4][1 2][3 5][2 3][4 5][3 4]]
        [[1 5][3 4][1 3][2 4][2 3][4 5][1 2][3 4][2 3]]
        [[1 5][3 4][1 3][2 5][1 2][3 4][2 3][4 5][3 4]]
        [[1 5][3 4][1 3][2 5][2 3][4 5][1 2][3 4][2 3]]
        [[1 5][3 4][1 4][2 3][1 2][3 5][2 3][4 5][3 4]]
        [[1 5][3 4][1 4][2 5][2 3][4 5][1 2][3 4][2 3]]
        [[1 5][3 4][2 3][4 5][1 2][3 4][2 3][4 5][3 4]]
        [[1 5][3 4][2 3][4 5][1 4][3 5][1 2][3 4][2 3]]
        [[1 5][3 4][2 4][3 5][1 2][4 5][1 3][2 4][2 3]]
        [[2 3][4 5][1 2][3 4][1 3][2 5][2 3][4 5][3 4]]
        [[2 3][4 5][1 2][3 5][1 4][2 3][2 4][3 5][3 4]]
        [[2 3][4 5][1 2][3 5][2 5][3 4][1 3][2 4][2 3]]
        [[2 3][4 5][1 3][2 4][1 2][4 5][2 4][3 5][3 4]]
        [[2 3][4 5][1 3][2 4][1 4][3 5][1 2][3 4][2 3]]
        [[2 3][4 5][1 3][2 5][1 4][3 5][1 2][3 4][2 3]]
        [[2 3][4 5][1 4][2 5][1 2][3 4][2 3][4 5][3 4]]
        [[2 3][4 5][1 4][3 5][1 2][3 4][2 3][4 5][3 4]]
        [[2 3][4 5][1 4][3 5][2 3][4 5][1 2][3 4][2 3]]
        [[2 3][4 5][1 5][2 4][1 2][3 4][2 3][4 5][3 4]]
        [[2 3][4 5][1 5][2 4][1 4][3 5][1 2][3 4][2 3]]
        [[2 3][4 5][1 5][3 4][1 2][4 5][1 3][2 4][2 3]]
        [[2 4][3 5][1 2][3 4][1 3][2 5][2 3][4 5][3 4]]
        [[2 4][3 5][1 2][4 5][1 3][2 4][2 3][4 5][3 4]]
        [[2 4][3 5][1 2][4 5][2 5][3 4][1 3][2 4][2 3]]
        [[2 4][3 5][1 3][2 5][1 2][3 4][2 3][4 5][3 4]]
        [[2 4][3 5][1 3][4 5][1 2][3 4][2 3][4 5][3 4]]
        [[2 4][3 5][1 3][4 5][2 4][3 5][1 2][3 4][2 3]]
        [[2 4][3 5][1 4][2 3][1 2][3 5][2 3][4 5][3 4]]
        [[2 4][3 5][1 4][2 3][1 3][4 5][1 2][3 4][2 3]]
        [[2 4][3 5][1 4][2 5][1 3][4 5][1 2][3 4][2 3]]
        [[2 4][3 5][1 5][2 3][1 2][3 4][2 3][4 5][3 4]]
        [[2 4][3 5][1 5][2 3][1 3][4 5][1 2][3 4][2 3]]
        [[2 4][3 5][1 5][3 4][1 2][4 5][1 3][2 4][2 3]]
        [[2 5][3 4][1 2][3 5][1 3][2 4][2 3][4 5][3 4]]
        [[2 5][3 4][1 2][4 5][1 3][2 4][2 3][4 5][3 4]]
        [[2 5][3 4][1 2][4 5][2 5][3 4][1 3][2 4][2 3]]
        [[2 5][3 4][1 3][2 4][1 2][3 5][2 3][4 5][3 4]]
        [[2 5][3 4][1 3][4 5][1 2][3 4][2 3][4 5][3 4]]
        [[2 5][3 4][1 3][4 5][2 4][3 5][1 2][3 4][2 3]]
        [[2 5][3 4][1 4][2 3][1 2][3 5][2 3][4 5][3 4]]
        [[2 5][3 4][1 4][2 3][1 3][4 5][1 2][3 4][2 3]]
        [[2 5][3 4][1 4][3 5][1 2][4 5][1 3][2 4][2 3]]
        [[2 5][3 4][1 5][2 3][1 2][3 4][2 3][4 5][3 4]]
        [[2 5][3 4][1 5][2 3][1 3][4 5][1 2][3 4][2 3]]
        [[2 5][3 4][1 5][2 4][1 3][4 5][1 2][3 4][2 3]]
    
    
    ----------
    
    
     - 6-input: 90 networks
    
        [[1 2][3 4][5 6][1 3][2 5][4 6][1 2][3 4][5 6][2 3][4 5][3 4]]
        [[1 2][3 4][5 6][1 3][2 6][4 5][1 4][2 3][5 6][2 4][3 5][3 4]]
        [[1 2][3 4][5 6][1 4][2 6][3 5][1 3][2 5][4 6][2 3][4 5][3 4]]
        [[1 2][3 4][5 6][1 5][2 3][4 6][1 2][3 6][4 5][2 4][3 5][3 4]]
        [[1 2][3 4][5 6][1 5][2 4][3 6][1 3][2 5][4 6][2 3][4 5][3 4]]
        [[1 2][3 4][5 6][1 6][2 4][3 5][1 3][2 5][4 6][2 3][4 5][3 4]]
        [[1 2][3 5][4 6][1 3][2 4][5 6][1 2][3 5][4 6][2 3][4 5][3 4]]
        [[1 2][3 5][4 6][1 3][2 6][4 5][1 4][2 3][5 6][2 4][3 5][3 4]]
        [[1 2][3 5][4 6][1 4][2 3][5 6][1 2][3 6][4 5][2 4][3 5][3 4]]
        [[1 2][3 5][4 6][1 4][2 5][3 6][1 3][2 4][5 6][2 3][4 5][3 4]]
        [[1 2][3 5][4 6][1 5][2 6][3 4][1 3][2 4][5 6][2 3][4 5][3 4]]
        [[1 2][3 5][4 6][1 6][2 5][3 4][1 3][2 4][5 6][2 3][4 5][3 4]]
        [[1 2][3 6][4 5][1 3][2 4][5 6][1 2][3 5][4 6][2 3][4 5][3 4]]
        [[1 2][3 6][4 5][1 3][2 5][4 6][1 4][2 3][5 6][2 4][3 5][3 4]]
        [[1 2][3 6][4 5][1 4][2 3][5 6][1 2][3 6][4 5][2 4][3 5][3 4]]
        [[1 2][3 6][4 5][1 4][2 6][3 5][1 3][2 4][5 6][2 3][4 5][3 4]]
        [[1 2][3 6][4 5][1 5][2 6][3 4][1 3][2 4][5 6][2 3][4 5][3 4]]
        [[1 2][3 6][4 5][1 6][2 5][3 4][1 3][2 4][5 6][2 3][4 5][3 4]]
        [[1 3][2 4][5 6][1 2][3 5][4 6][1 3][2 4][5 6][2 3][4 5][3 4]]
        [[1 3][2 4][5 6][1 2][3 6][4 5][1 4][2 3][5 6][2 4][3 5][3 4]]
        [[1 3][2 4][5 6][1 4][2 5][3 6][1 2][3 5][4 6][2 3][4 5][3 4]]
        [[1 3][2 4][5 6][1 5][2 3][4 6][1 2][3 6][4 5][2 4][3 5][3 4]]
        [[1 3][2 4][5 6][1 5][2 6][3 4][1 2][3 5][4 6][2 3][4 5][3 4]]
        [[1 3][2 4][5 6][1 6][2 5][3 4][1 2][3 5][4 6][2 3][4 5][3 4]]
        [[1 3][2 5][4 6][1 2][3 4][5 6][1 3][2 5][4 6][2 3][4 5][3 4]]
        [[1 3][2 5][4 6][1 2][3 6][4 5][1 4][2 3][5 6][2 4][3 5][3 4]]
        [[1 3][2 5][4 6][1 4][2 3][5 6][1 2][3 6][4 5][2 4][3 5][3 4]]
        [[1 3][2 5][4 6][1 4][2 6][3 5][1 2][3 4][5 6][2 3][4 5][3 4]]
        [[1 3][2 5][4 6][1 5][2 4][3 6][1 2][3 4][5 6][2 3][4 5][3 4]]
        [[1 3][2 5][4 6][1 6][2 4][3 5][1 2][3 4][5 6][2 3][4 5][3 4]]
        [[1 3][2 6][4 5][1 2][3 4][5 6][1 3][2 5][4 6][2 3][4 5][3 4]]
        [[1 3][2 6][4 5][1 2][3 5][4 6][1 4][2 3][5 6][2 4][3 5][3 4]]
        [[1 3][2 6][4 5][1 4][2 3][5 6][1 2][3 6][4 5][2 4][3 5][3 4]]
        [[1 3][2 6][4 5][1 4][2 5][3 6][1 2][3 4][5 6][2 3][4 5][3 4]]
        [[1 3][2 6][4 5][1 5][2 4][3 6][1 2][3 4][5 6][2 3][4 5][3 4]]
        [[1 3][2 6][4 5][1 6][2 4][3 5][1 2][3 4][5 6][2 3][4 5][3 4]]
        [[1 4][2 3][5 6][1 2][3 5][4 6][1 3][2 4][5 6][2 3][4 5][3 4]]
        [[1 4][2 3][5 6][1 2][3 6][4 5][1 4][2 3][5 6][2 4][3 5][3 4]]
        [[1 4][2 3][5 6][1 3][2 5][4 6][1 2][3 6][4 5][2 4][3 5][3 4]]
        [[1 4][2 3][5 6][1 5][2 4][3 6][1 2][3 5][4 6][2 3][4 5][3 4]]
        [[1 4][2 3][5 6][1 5][2 6][3 4][1 2][3 5][4 6][2 3][4 5][3 4]]
        [[1 4][2 3][5 6][1 6][2 5][3 4][1 2][3 5][4 6][2 3][4 5][3 4]]
        [[1 4][2 5][3 6][1 2][3 4][5 6][1 3][2 5][4 6][2 3][4 5][3 4]]
        [[1 4][2 5][3 6][1 2][3 5][4 6][1 3][2 4][5 6][2 3][4 5][3 4]]
        [[1 4][2 5][3 6][1 3][2 4][5 6][1 2][3 5][4 6][2 3][4 5][3 4]]
        [[1 4][2 5][3 6][1 3][2 6][4 5][1 2][3 4][5 6][2 3][4 5][3 4]]
        [[1 4][2 5][3 6][1 5][2 3][4 6][1 2][3 4][5 6][2 3][4 5][3 4]]
        [[1 4][2 5][3 6][1 6][2 3][4 5][1 2][3 4][5 6][2 3][4 5][3 4]]
        [[1 4][2 6][3 5][1 2][3 4][5 6][1 3][2 5][4 6][2 3][4 5][3 4]]
        [[1 4][2 6][3 5][1 2][3 6][4 5][1 3][2 4][5 6][2 3][4 5][3 4]]
        [[1 4][2 6][3 5][1 3][2 4][5 6][1 2][3 5][4 6][2 3][4 5][3 4]]
        [[1 4][2 6][3 5][1 3][2 5][4 6][1 2][3 4][5 6][2 3][4 5][3 4]]
        [[1 4][2 6][3 5][1 5][2 3][4 6][1 2][3 4][5 6][2 3][4 5][3 4]]
        [[1 4][2 6][3 5][1 6][2 3][4 5][1 2][3 4][5 6][2 3][4 5][3 4]]
        [[1 5][2 3][4 6][1 2][3 4][5 6][1 3][2 5][4 6][2 3][4 5][3 4]]
        [[1 5][2 3][4 6][1 2][3 6][4 5][1 4][2 3][5 6][2 4][3 5][3 4]]
        [[1 5][2 3][4 6][1 3][2 4][5 6][1 2][3 6][4 5][2 4][3 5][3 4]]
        [[1 5][2 3][4 6][1 4][2 5][3 6][1 2][3 4][5 6][2 3][4 5][3 4]]
        [[1 5][2 3][4 6][1 4][2 6][3 5][1 2][3 4][5 6][2 3][4 5][3 4]]
        [[1 5][2 3][4 6][1 6][2 4][3 5][1 2][3 4][5 6][2 3][4 5][3 4]]
        [[1 5][2 4][3 6][1 2][3 4][5 6][1 3][2 5][4 6][2 3][4 5][3 4]]
        [[1 5][2 4][3 6][1 2][3 5][4 6][1 3][2 4][5 6][2 3][4 5][3 4]]
        [[1 5][2 4][3 6][1 3][2 5][4 6][1 2][3 4][5 6][2 3][4 5][3 4]]
        [[1 5][2 4][3 6][1 3][2 6][4 5][1 2][3 4][5 6][2 3][4 5][3 4]]
        [[1 5][2 4][3 6][1 4][2 3][5 6][1 2][3 5][4 6][2 3][4 5][3 4]]
        [[1 5][2 4][3 6][1 6][2 3][4 5][1 2][3 4][5 6][2 3][4 5][3 4]]
        [[1 5][2 6][3 4][1 2][3 5][4 6][1 3][2 4][5 6][2 3][4 5][3 4]]
        [[1 5][2 6][3 4][1 2][3 6][4 5][1 3][2 4][5 6][2 3][4 5][3 4]]
        [[1 5][2 6][3 4][1 3][2 4][5 6][1 2][3 5][4 6][2 3][4 5][3 4]]
        [[1 5][2 6][3 4][1 3][2 5][4 6][1 2][3 4][5 6][2 3][4 5][3 4]]
        [[1 5][2 6][3 4][1 4][2 3][5 6][1 2][3 5][4 6][2 3][4 5][3 4]]
        [[1 5][2 6][3 4][1 6][2 3][4 5][1 2][3 4][5 6][2 3][4 5][3 4]]
        [[1 6][2 3][4 5][1 2][3 4][5 6][1 3][2 5][4 6][2 3][4 5][3 4]]
        [[1 6][2 3][4 5][1 2][3 5][4 6][1 4][2 3][5 6][2 4][3 5][3 4]]
        [[1 6][2 3][4 5][1 3][2 4][5 6][1 2][3 6][4 5][2 4][3 5][3 4]]
        [[1 6][2 3][4 5][1 4][2 5][3 6][1 2][3 4][5 6][2 3][4 5][3 4]]
        [[1 6][2 3][4 5][1 4][2 6][3 5][1 2][3 4][5 6][2 3][4 5][3 4]]
        [[1 6][2 3][4 5][1 5][2 4][3 6][1 2][3 4][5 6][2 3][4 5][3 4]]
        [[1 6][2 4][3 5][1 2][3 4][5 6][1 3][2 5][4 6][2 3][4 5][3 4]]
        [[1 6][2 4][3 5][1 2][3 6][4 5][1 3][2 4][5 6][2 3][4 5][3 4]]
        [[1 6][2 4][3 5][1 3][2 5][4 6][1 2][3 4][5 6][2 3][4 5][3 4]]
        [[1 6][2 4][3 5][1 3][2 6][4 5][1 2][3 4][5 6][2 3][4 5][3 4]]
        [[1 6][2 4][3 5][1 4][2 3][5 6][1 2][3 5][4 6][2 3][4 5][3 4]]
        [[1 6][2 4][3 5][1 5][2 3][4 6][1 2][3 4][5 6][2 3][4 5][3 4]]
        [[1 6][2 5][3 4][1 2][3 5][4 6][1 3][2 4][5 6][2 3][4 5][3 4]]
        [[1 6][2 5][3 4][1 2][3 6][4 5][1 3][2 4][5 6][2 3][4 5][3 4]]
        [[1 6][2 5][3 4][1 3][2 4][5 6][1 2][3 5][4 6][2 3][4 5][3 4]]
        [[1 6][2 5][3 4][1 3][2 6][4 5][1 2][3 4][5 6][2 3][4 5][3 4]]
        [[1 6][2 5][3 4][1 4][2 3][5 6][1 2][3 5][4 6][2 3][4 5][3 4]]
        [[1 6][2 5][3 4][1 5][2 3][4 6][1 2][3 4][5 6][2 3][4 5][3 4]] 
    

    Personally I'd check that the sorting network is correct before using it, rather than taking the word of some random page on the internet. Brute force "only" requires running it against finitely many inputs: "obviously" n! inputs is enough, and in fact so is 2**n (https://en.wikipedia.org/wiki/Sorting_network#Zero-one_principle).

    All of the optimal 5-networks involve "3" in the last swap, so picking the median in fewer swaps isn't quite so easy as all that. It can be done in 6 comparisons, though. There's way more code than you need here, if you can ignore the whining about the question:

    Code to calculate "median of five" in C#

    To pick a median you don't necessarily do any swaps, other than perhaps one unconditional swap if you want to preserve all 5 values. A move might be adequate.

提交回复
热议问题