1. C++ / Говнокод #22815

    −11

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    #if HAVE(MERGESORT)
        if (isSortingPrimitiveValues)
            qsort(values.begin(), values.size(), sizeof(ValueStringPair), compareByStringPairForQSort);
        else
            mergesort(values.begin(), values.size(), sizeof(ValueStringPair), compareByStringPairForQSort);
    #else
        // FIXME: The qsort library function is likely to not be a stable sort.
        // ECMAScript-262 does not specify a stable sort, but in practice, browsers perform a stable sort.
        qsort(values.begin(), values.size(), sizeof(ValueStringPair), compareByStringPairForQSort);
    #endif

    Из какой-то древней версии Webkit. Про устойчивость сортировки. Ну типа вот хоть в ECMAScript-262 нихрена не написано про то, что сортировка должна быть устойчивой, мы сделаем ее устойчивой потому что так принято (а то сломаем еще ненароком чей-то говнокод на JS)

    вот еще
    https://bugs.chromium.org/p/v8/issues/detail?id=90
    https://habrahabr.ru/post/303748/

    Запостил: j123123, 15 Апреля 2017

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

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

        Stable sort погугли.
        Ответить
        • В смысле одинаковые элементы если у них одинаково используемое для сравнения в сортировке поле? Век живи - век гугли...
          Ответить
          • да чего гуглить то?

            достаточно вирта почитать "структуры и олгоритмы"
            стыдно не читать!
            Ответить
      • блядь
        как можно дожить до седых мудей и не знать что такое stable sort и не stable sort?

        если у тебя есть foo и bar, и bar == foo, то стабильная сортировка никогда их не поменяет местами, а нестабильная -- может.

        Например в жобе для сортировки примитивов используется нестабильная (потому что 2 и 2 можно менять местами скок угодно) а для объектов стабильная потому что если foo.equals(bar), то совсем не факт что это один и тот же объект
        Ответить
        • Так у меня еще муди не седые, что я хрыч старый что-ле?
          Ответить
        • бороп, может он не знал русское название, а "stable sort" знал
          Ответить
          • стейбл сорт он знал, а догадаться, что же за устойчивая сортировка, он не смог
            Ответить
        • Ну да, вот тут же такой элитный сайт для экспертов с мировым именем, которые как минимум Ph.D. по компутер сраенсу имеют, а он тут такие вопросы задает.
          Ответить
          • Если регулярно пердишь в лужу умничаешь в коментах, как этот пиздун, то такие основы будь добр знать.
            Ответить

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