Tri instable en JavaScript

Quand je vois un article sur un sujet similaire sur n'importe quel réseau social, il y a presque toujours beaucoup de commentaires de ce type en dessous:

  • Pourquoi avez-vous besoin de savoir cela s'il existe des mĂ©thodes de tri intĂ©grĂ©es?

  • Pourquoi rĂ©inventer la roue?

  • Il est nĂ©cessaire de passer un entretien, objectivement il n'est plus nĂ©cessaire de le savoir

  • Dans "n'importe quel moteur javascript", ils ne sont pas stupides et ont dĂ©jĂ  tout fait correctement

Et moi-même, je pensais de la même manière jusqu'à ce que je rejoigne l'une des équipes informatiques de Rostelecom en tant que développeur frontend. Ensemble, nous sommes tombés sur un cas très intéressant: il fallait créer un widget qui pourrait être embarqué dans les systèmes d'information de toutes nos agences macro-régionales et simplifier le travail des opérateurs dans le choix du tarif optimal.

Droit au but

Que pensez-vous qu'il se passera après l'exécution de ce code? En attendant, il n'y a pas lieu de s'en inquiéter. »

Il semble que rien d'Ă©trange, mais il y a des nuances.

Nombre de cas fois

, , , 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