Я нашел ответ:
В оригинальной демонстрации, которую я разместил, данные были немного надуманными.Свойства объектов в каждом наборе одинаковы и выполняются целенаправленно.Я не тасовал массив;установите pivot на начальный элемент части массива, который сортируется.
Когда я продолжил отладку демонстрации, события NY и JC сохранили свой первоначальный порядок Pgh объекты действительно изменили свой первоначальный порядок вставки.Поэтому я видел нестабильность алгоритма.
Я использовал хеш-код этих элементов для отслеживания их первоначального порядка вставки.
Вот результат выполнения:
[{New York,0,1163157884}
, {New York,0,1956725890}
, {New York,0,356573597}
, {Jersey City,1,1735600054}
, {Jersey City,1,21685669}
, {Jersey City,1,2133927002}
, {Pittsburgh,2,1836019240}
, {Pittsburgh,2,325040804}
, {Pittsburgh,2,1173230247}
]
After sorting
[{Jersey City,1,1735600054}
, {Jersey City,1,21685669}
, {Jersey City,1,2133927002}
, {New York,0,1163157884}
, {New York,0,1956725890}
, {New York,0,356573597}
, {Pittsburgh,2,325040804}
, {Pittsburgh,2,1173230247}
, {Pittsburgh,2,1836019240}
]
Если я перетасовываю входной массив,нестабильность алгоритма становится более очевидной.
Вот результат выполнения ( с перемешанным вводом ):
Original order
[{New York,0,1163157884}
, {New York,0,1956725890}
, {New York,0,356573597}
, {Jersey City,1,1735600054}
, {Jersey City,1,21685669}
, {Jersey City,1,2133927002}
, {Pittsburgh,2,1836019240}
, {Pittsburgh,2,325040804}
, {Pittsburgh,2,1173230247}
]
After shuffling
[{New York,0,1163157884}
, {New York,0,1956725890}
, {Pittsburgh,2,325040804}
, {Jersey City,1,2133927002}
, {New York,0,356573597}
, {Jersey City,1,1735600054}
, {Pittsburgh,2,1836019240}
, {Pittsburgh,2,1173230247}
, {Jersey City,1,21685669}
]
After sorting
[{Jersey City,1,21685669}
, {Jersey City,1,2133927002}
, {Jersey City,1,1735600054}
, {New York,0,1956725890}
, {New York,0,356573597}
, {New York,0,1163157884}
, {Pittsburgh,2,1173230247}
, {Pittsburgh,2,1836019240}
, {Pittsburgh,2,325040804}
]
Пожалуйста, дайте мне знать, если есть какие-либо предложения поэтот ответ