JavaScriptでの不安定な並べ替え

ソーシャルネットワークで同様のトピックに関する投稿を見ると、ほとんどの場合、このタイプのコメントがたくさんあります。

  • 組み込みの並べ替え方法があるかどうかを知る必要があるのはなぜですか?

  • なぜ車輪を再発明するのですか?

  • 面接に合格する必要があり、客観的にはもう知る必要はありません

  • 「任意のjavascriptエンジン」では、彼らは愚かではなく、すでにすべてを正しく行っています

そして、フロントエンド開発者としてRostelecom ITチームの1つに来るまで、私自身も同じように考えていました。一緒になって、非常に興味深いケースに遭遇しました。すべてのマクロ地域ブランチの情報システムに組み込むことができるウィジェットを作成し、最適な料金を選択する際のオペレーターの作業を簡素化する必要がありました。

ポイントにまっすぐ

このコードが実行された後、どうなると思いますか?それまでの間、心配する必要はありません。」

何も奇妙なことではないようですが、ニュアンスがあります。

ケース回数

, , , unit-. - . . -, . , Node.js 10, , . , , . , — . , , , , .

. Node , Node, 11, . . Node 12, .

: Google Chrome 80 , 69 — . , . 

  • ,

  • Release notes Google Chrome 

  • , Google Chrome 69 — , 6- V8

  • Release notes V8

  • 6 7 V8

Getting things sorted in V8, , 7- V8 TimSort, QuickSort. , , - .

Node.js 10.22 ( V8 v6.8) QuickSort.​

​ , , 0.

Node.js 14.5 ( V8 v7.0) TimSort.​

​ .

? , JavaScript. Node.js , . 

, . BlockSort (wikisort). , , , , .

:

  • lodash.sortby

  • WikiSort javascript (WikiSort)

  • QuickSort V8 (node.js 10.22.0)

  • TimSort V8 (node.js 14.5.0)

10 , 100 . 

​ : , V8, WikiSort TimSort, . lodash

sort-test-js, — Tihon-Ustinov/sort-test-js

?

JavaScript

Node.js

11.0.0

2018-10-23

V8 7.0.276.28

+

Node.js

10.22.0

2020-07-21

V8 6.8.275.32

-

Google Chrome

70.0.3538

2018-10-16

V8 7.0.276

+

Google Chrome

69.0.3497

2018-09-04

V8 6.9.427

-

  • « JavaScript»,

  • ,

  • ,

  • , ,




All Articles