MCPcopy Index your code
hub / github.com/SuperMap/iClient-JavaScript / sort

Function sort

libs/echarts/echarts.simple.js:6431–6477  ·  view source on GitHub ↗
(array, compare, lo, hi)

Source from the content-addressed store, hash-verified

6429}
6430
6431function sort(array, compare, lo, hi) {
6432 if (!lo) {
6433 lo = 0;
6434 }
6435 if (!hi) {
6436 hi = array.length;
6437 }
6438
6439 var remaining = hi - lo;
6440
6441 if (remaining < 2) {
6442 return;
6443 }
6444
6445 var runLength = 0;
6446
6447 if (remaining < DEFAULT_MIN_MERGE) {
6448 runLength = makeAscendingRun(array, lo, hi, compare);
6449 binaryInsertionSort(array, lo, hi, lo + runLength, compare);
6450 return;
6451 }
6452
6453 var ts = new TimSort(array, compare);
6454
6455 var minRun = minRunLength(remaining);
6456
6457 do {
6458 runLength = makeAscendingRun(array, lo, hi, compare);
6459 if (runLength < minRun) {
6460 var force = remaining;
6461 if (force > minRun) {
6462 force = minRun;
6463 }
6464
6465 binaryInsertionSort(array, lo, lo + force, lo + runLength, compare);
6466 runLength = force;
6467 }
6468
6469 ts.pushRun(lo, runLength);
6470 ts.mergeRuns();
6471
6472 remaining -= runLength;
6473 lo += runLength;
6474 } while (remaining !== 0);
6475
6476 ts.forceMergeRuns();
6477}
6478
6479// Use timsort because in most case elements are partially sorted
6480// https://jsfiddle.net/pissang/jr4x7mdm/8/

Callers 2

echarts.simple.jsFile · 0.70
EChartsFunction · 0.70

Calls 3

makeAscendingRunFunction · 0.70
binaryInsertionSortFunction · 0.70
minRunLengthFunction · 0.70

Tested by

no test coverage detected