MCPcopy Create free account
hub / github.com/microsoft/SandDance / sortLinked

Function sortLinked

docs/app/js/sanddance-app.js:101956–102002  ·  view source on GitHub ↗
(list)

Source from the content-addressed store, hash-verified

101954 sortLinked(p);
101955}
101956function sortLinked(list) {
101957 let e;
101958 let i;
101959 let inSize = 1;
101960 let numMerges;
101961 let p;
101962 let pSize;
101963 let q;
101964 let qSize;
101965 let tail;
101966 do {
101967 p = list;
101968 list = null;
101969 tail = null;
101970 numMerges = 0;
101971 while(p){
101972 numMerges++;
101973 q = p;
101974 pSize = 0;
101975 for(i = 0; i < inSize; i++){
101976 pSize++;
101977 q = q.nextZ;
101978 if (!q) break;
101979 }
101980 qSize = inSize;
101981 while(pSize > 0 || qSize > 0 && q){
101982 if (pSize !== 0 && (qSize === 0 || !q || p.z <= q.z)) {
101983 e = p;
101984 p = p.nextZ;
101985 pSize--;
101986 } else {
101987 e = q;
101988 q = q.nextZ;
101989 qSize--;
101990 }
101991 if (tail) tail.nextZ = e;
101992 else list = e;
101993 e.prevZ = tail;
101994 tail = e;
101995 }
101996 p = q;
101997 }
101998 tail.nextZ = null;
101999 inSize *= 2;
102000 }while (numMerges > 1);
102001 return list;
102002}
102003function zOrder(x, y, minX, minY, invSize) {
102004 x = 32767 * (x - minX) * invSize;
102005 y = 32767 * (y - minY) * invSize;

Callers 1

indexCurveFunction · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected