エムスリーエンジニアリンググループ AI・機械学習チームでソフトウェアエンジニアをしている中村(po3rin) です。検索とGoが好きです。 最近、Go1.19でsortパッケージのアルゴリズムが一部変更されました。 Pattern-defeating Quicksortが入った時のdiff 1.19リリースノートではPattern-defeating Quicksortが採用されたと紹介があります。実際にsort/zsortfunc.go、sort/zsortinterface.goにそれぞれpdqsort_func、pdqsortという関数があります。 // pdqsort sorts data[a:b]. // The algorithm based on pattern-defeating quicksort(pdqsort), but without the optimizati
![Go1.19に採用されたPattern-defeating Quicksortの紹介 - エムスリーテックブログ](https://cdn-ak-scissors.b.st-hatena.com/image/square/780ffe8115f94bc405abf59506934b3d01b1e2c5/height=288;version=1;width=512/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fa%2Fabctail30%2F20220817%2F20220817162415.png)