1. C# / Говнокод #12894

    +111

    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
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    public static void kk(int KEY, int[] Q, ref int x)
            {
                if (KEY <= Q[4095]) // 0-4095
                {
                    if (KEY <= Q[2047]) // 0-2047
                    {
                        if (KEY <= Q[1023]) // 0-1023
                        {
                            if (KEY <= Q[511]) // 0-511
                            {
                                if (KEY <= Q[255]) // 0-255
                                {
                                    if (KEY <= Q[127]) // 0-127
                                    {
                                        if (KEY <= Q[63]) // 0-63
                                        {
                                            if (KEY <= Q[31]) // 0-31
                                            {
                                                if (KEY <= Q[15]) // 0-15
                                                {
                                                    if (KEY <= Q[7]) // 0-7
                                                    {
                                                        if (KEY <= Q[3]) // 0-3
                                                        {
                                                            if (KEY <= Q[1]) // 0-1
                                                            {
                                                                if (KEY <= Q[0]) x = 0;
                                                                else x = 1;
                                                            } // end 0-1
                                                            else  //2-3
                                                            {
                                                                if (KEY <= Q[2]) x = 2;
                                                                else x = 3;
                                                            } // end 2-3
                                                        } // end 0-3
    .................................................................

    С форума sql.ru: "......есть адский статический метод на 33.000 строк...."

    Запостил: grobotron, 15 Апреля 2013

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

    • Замечательная реализация бинарного поиска в массиве...
      Ответить
      • Ну так развертывают же, для скорости.
        Ответить
        • Да вот тут не факт, что от этого есть какая-то польза. Кеш инструкций оно засрет, а непредсказанных переходов будет столько же, сколько и с циклом (т.к. переход от самого цикла вполне предсказуем).

          P.S. А ну да, тут еще и C#, так что еще и лишняя нагрузка на JIT.
          Ответить
    • А транскрипция к названию функции [kAkA] ?
      Ответить
    • Отсутствует LINQ
      Ответить
    • я один прочел "адский сатанический"?
      Ответить

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