Ketika saya melihat posting tentang topik serupa di jejaring sosial apa pun, hampir selalu ada banyak komentar seperti ini di bawahnya:
Mengapa Anda perlu mengetahui ini jika ada metode penyortiran bawaan?
Mengapa menemukan kembali roda?
Wawancara memang perlu, obyektif tidak perlu mengetahuinya lagi
Dalam "mesin javascript apa pun", mereka tidak bodoh, dan telah melakukan segalanya dengan benar
Dan saya sendiri dulu berpikiran sama, sampai saya bergabung dengan salah satu tim IT Rostelecom sebagai pengembang frontend. Bersama-sama kami menemukan kasus yang sangat menarik: perlu membuat widget yang dapat dibangun ke dalam sistem informasi semua cabang makro-regional kami dan menyederhanakan pekerjaan operator dalam memilih tarif yang optimal.
Langsung ke intinya
Menurut Anda, apa yang akan terjadi setelah kode ini dijalankan? Sementara itu, tidak perlu mengetahuinya. "
Sepertinya tidak ada yang aneh, tetapi ada nuansa.
Jumlah kasus kali
, , , 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Β»,
,
,
, ,