الفرز غير المستقر في JavaScript

عندما أرى منشورًا حول موضوع مشابه على أي شبكة تواصل اجتماعي ، يوجد دائمًا تقريبًا الكثير من التعليقات من هذا النوع تحته:

  • لماذا تحتاج إلى معرفة هذا إذا كانت هناك طرق فرز مضمنة؟

  • لماذا إعادة اختراع العجلة؟

  • من الضروري اجتياز مقابلة ، موضوعيا لا داعي لمعرفة ذلك بعد الآن

  • في "أي محرك جافا سكريبت" ليسوا أغبياء ، وقد فعلوا بالفعل كل شيء بشكل صحيح

وكنت أنا نفسي أفكر بنفس الطريقة حتى جئت إلى أحد فرق تكنولوجيا المعلومات في Rostelecom كمطور للواجهة الأمامية. صادفنا معًا حالة مثيرة للاهتمام للغاية: كان من الضروري إنشاء عنصر واجهة مستخدم يمكن تضمينه في أنظمة المعلومات لجميع فروعنا الإقليمية الكلية وتبسيط عمل المشغلين في اختيار التعرفة المثلى.

مباشرة إلى النقطة

ماذا تعتقد سيحدث بعد تنفيذ هذا الرمز؟ في غضون ذلك ، لا داعي للقلق بشأن ذلك ".

يبدو أنه لا يوجد شيء غريب ، ولكن هناك فروق دقيقة.

عدد مرات القضية

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