Classificação instável em JavaScript

Quando vejo uma postagem sobre um tópico semelhante em qualquer rede social, quase sempre há muitos comentários desse tipo abaixo dela:

  • Por que você precisa saber disso se existem métodos de classificação integrados?

  • Por que reinventar a roda?

  • É necessário passar em entrevista, objetivamente não há necessidade de saber mais

  • Em "qualquer mecanismo javascript" eles não são burros e já fizeram tudo certo

E eu mesmo costumava pensar da mesma forma até chegar a uma das equipes de TI da Rostelecom como desenvolvedor front-end. Juntos nos deparamos com um caso muito interessante: era necessário criar um widget que pudesse ser embutido nos sistemas de informação de todas as nossas filiais macrorregionais e simplificar o trabalho das operadoras na escolha da tarifa ótima.

Direto ao ponto

O que você acha que acontecerá depois que esse código for executado? Enquanto isso, não há necessidade de se preocupar com isso. ”

Parece que nada de estranho, mas existem nuances.

Número do caso vezes

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