1. Си / Говнокод #25226

    +4

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    typedef void proc();
    
    proc nop{}
    void swap(int *a, int *b) {*a^=*b^=*a^=*b;}
    
    void sort_(int *arr, unsigned len)
    {
        (proc*[]){nop, swap}[*arr > arr[1]](arr, arr+1);
        (proc*[]){nop, sort_}[len > 2](arr+1, len-1);
    }
    void sort(int *arr, unsigned len)
    {
        (proc*[]){sort_, nop}[len <= 1](arr, len);
        (proc*[]){nop, sort}[len > 2](arr, len-1);
    }

    По поводу апнутого #19105.
    Ветвление легко имитируеься массивом функий, цикол —– рукурсией. Получилось даже короче и понятнее чем обычный код.

    Запостил: Morgoth, 26 Декабря 2018

    Комментарии (94) RSS

    Добавить комментарий