{"ScriptPreparationCode":"function getRandomInt(max) {\r\n return Math.floor(Math.random() * Math.floor(max));\r\n}\r\n\r\nvar arr = [];\r\nfor(var i = 0; i \u003C 100000; i\u002B\u002B){\r\n arr.push({value:getRandomInt(100)});\r\n}\r\n\r\n","TestCases":[{"Name":"_.sortBy","Code":"_.orderBy(arr,\u0022value\u0022);","IsDeferred":false},{"Name":"array.prototype.sort","Code":"arr.sort((a,b) =\u003E a.value - b.value);","IsDeferred":false},{"Name":"other","Code":"var sort = function(array) {\r\n var len = array.length;\r\n if(len \u003C 2) { \r\n return array;\r\n }\r\n var pivot = Math.ceil(len/2);\r\n return merge(sort(array.slice(0,pivot)), sort(array.slice(pivot)));\r\n};\r\n\r\nvar merge = function(left, right) {\r\n var result = [];\r\n while((left.length \u003E 0) \u0026\u0026 (right.length \u003E 0)) {\r\n if(left[0].value \u003E right[0].value) {\r\n result.push(left.shift());\r\n }\r\n else {\r\n result.push(right.shift());\r\n }\r\n }\r\n\r\n result = result.concat(left, right);\r\n return result;\r\n};\r\n\r\nsort(arr);","IsDeferred":false},{"Name":"Stable Sort","Code":"const stableSort = (arr, compare) =\u003E arr\r\n .map((item, index) =\u003E ({item, index}))\r\n .sort((a, b) =\u003E compare(a.item, b.item) || a.index - b.index)\r\n .map(({item}) =\u003E item)\r\n\r\nstableSort(arr, (a,b) =\u003E a.value - b.value)","IsDeferred":false}]}