Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
function DFS(node, parent) { // node = current node, parent = previous node
// visualize {
tracer.visit(node, parent);
Tracer.delay();
// }
for (let i = 0; i < G[node].length; i++) {
if (G[node][i]) { // if current node has the i-th node as a child
DFS(i, node); // recursively call DFS
}
}
}
(function main() {
// visualize {
Layout.setRoot(new VerticalLayout([array2dTracer, logTracer]));
array2dTracer.set(messages);
Tracer.delay();
// }
highlight(0);
})();
}
}
}
const slot = new Array(N);
const result = new Array(N);
for (let i = N - 1; i >= 0; i--) {
result[i] = '-';
}
// define tracer variables {
const tracer3 = new Array1DTracer('Schedule');
const tracer = new Array1DTracer('Job Ids');
const tracer1 = new Array1DTracer('Deadlines');
const tracer2 = new Array1DTracer('Profit');
Layout.setRoot(new VerticalLayout([tracer3, tracer, tracer1, tracer2]));
tracer.set(jobId);
tracer1.set(deadline);
tracer2.set(profit);
tracer3.set(result);
Tracer.delay();
// }
// Initialise all slots to free
for (let i = 0; i < N; i++) {
slot[i] = 0;
}
// Iterate through all the given jobs
for (let i = 0; i < N; i++) {
/*
Start from the last possible slot.
// import visualization libraries {
const { Tracer, Array1DTracer, LogTracer, Layout, VerticalLayout } = require('algorithm-visualizer');
// }
const D = [-2, -3, 4, -1, -2, 1, 5, -3];
// define tracer variables {
const tracer = new Array1DTracer();
const logger = new LogTracer();
Layout.setRoot(new VerticalLayout([tracer, logger]));
tracer.set(D);
Tracer.delay();
// }
const maxSubarraySum = (function maxSubarray(array) {
let maxSoFar = 0;
let maxEndingHere = 0;
// logger {
logger.println('Initializing maxSoFar = 0 & maxEndingHere = 0');
// }
for (let i = 0; i < array.length; i++) {
// visualize {
tracer.select(i);
// }
const N = 15;
const A = new Array(N);
for (let i = N - 1; i >= 0; i--) {
A[i] = 0;
}
A[0] = 1; // By convention 1 is an ugly number
const M = [2, 3, 5]; // multiples of 2, 3, 5 respectively
const I = [0, 0, 0]; // iterators of 2, 3, 5 respectively
// define tracer variables {
const tracer = new Array1DTracer('Ugly Numbers');
const tracer2 = new Array1DTracer('Multiples of 2, 3, 5');
const tracer3 = new Array1DTracer(' Iterators I0, I1, I2 ');
const logger = new LogTracer();
Layout.setRoot(new VerticalLayout([tracer, tracer2, tracer3, logger]));
tracer.set(A);
tracer2.set(M);
tracer3.set(I);
Tracer.delay();
// }
for (let i = 1; i < N; i++) {
// next is minimum of m2, m3 and m5
const next = (M[0] <= M[1]) ? (M[0] <= M[2]) ? M[0] : M[2] : (M[1] <= M[2]) ? M[1] : M[2];
// logger {
logger.println(` Minimum of ${M[0]}, ${M[1]}, ${M[2]} : ${next}`);
// }
A[i] = next;
// visualize {
tracer.patch(i, A[i]);
// import visualization libraries {
const { Tracer, Array1DTracer, GraphTracer, LogTracer, Randomize, Layout, VerticalLayout } = require('algorithm-visualizer');
// }
// define tracer variables {
const graphTracer = new GraphTracer().directed(false);
const visitedTracer = new Array1DTracer('visited');
const logger = new LogTracer();
Layout.setRoot(new VerticalLayout([graphTracer, visitedTracer, logger]));
graphTracer.log(logger);
const G = Randomize.Graph({ N: 8, ratio: .3, directed: false });
graphTracer.set(G);
Tracer.delay();
// }
function DFSExplore(graph, source) {
const stack = [[source, null]];
const visited = [];
let node;
let prev;
let i;
let temp;
for (i = 0; i < graph.length; i++) {
visited.push(false);
}
// import visualization libraries {
const { Tracer, Array1DTracer, LogTracer, Layout, VerticalLayout } = require('algorithm-visualizer');
// }
const plainText = 'secret';
// define tracer variables {
const ptTracer = new Array1DTracer('Encryption');
const ctTracer = new Array1DTracer('Decryption');
const logger = new LogTracer();
Layout.setRoot(new VerticalLayout([ptTracer, ctTracer, logger]));
ptTracer.set(plainText);
Tracer.delay();
// }
/*
code assumes that plainText contains ONLY LOWER CASE ALPHABETS
*/
Number.prototype.mod = function (n) {
return ((this % n) + n) % n;
};
// import visualization libraries {
const { Tracer, Array1DTracer, LogTracer, Layout, VerticalLayout } = require('algorithm-visualizer');
// }
const plainText = 'secret';
// define tracer variables {
const ptTracer = new Array1DTracer('Encryption');
const ctTracer = new Array1DTracer('Decryption');
const logger = new LogTracer();
Layout.setRoot(new VerticalLayout([ptTracer, ctTracer, logger]));
ptTracer.set(plainText);
Tracer.delay();
// }
/*
code assumes that plainText contains ONLY LOWER CASE ALPHABETS
*/
Number.prototype.mod = function (n) {
return ((this % n) + n) % n;
};
const keys = { a: 5, b: 7 };
// }
// let pattern = "aab";
// let text = "aabxaabxcaabxaabxay";
const pattern = 'abc';
const text = 'xabcabzabc';
const len = pattern.length + text.length + 1;
const z = new Array(len);
z[0] = 0;
// define tracer variables {
const textTracer = new Array1DTracer('text');
const pattTracer = new Array1DTracer('pattern');
const concatTracer = new Array1DTracer('concatenated string');
const tracer = new Array1DTracer('zArray');
pattTracer.set(pattern);
textTracer.set(text);
tracer.set(z);
const logger = new LogTracer();
Layout.setRoot(new VerticalLayout([textTracer, pattTracer, concatTracer, tracer, logger]));
Tracer.delay();
// }
function createZarr(concat) {
let left;
let right;
let N;
N = concat.length;
left = 0;
right = 0;
// import visualization libraries {
const { Tracer, Array1DTracer, Array2DTracer, GraphTracer, LogTracer, Randomize, Layout, VerticalLayout } = require('algorithm-visualizer');
// }
function filledArray(length, value) {
return Array(...Array(length)).map(Number.prototype.valueOf, value);
}
// define tracer variables {
const G = Randomize.Graph({ N: 5, ratio: .4 });
let ranks;
const outgoingEdgeCounts = filledArray(G.length, 0);
let incomingNodes;
const graphTracer = new GraphTracer('Web Page inter-connections');
const rankTracer = new Array1DTracer('Web Page Ranks');
const oecTracer = new Array1DTracer('Outgoing Edge Counts');
const inTracer = new Array2DTracer('Incoming Nodes');
const logger = new LogTracer();
Layout.setRoot(new VerticalLayout([graphTracer, rankTracer, oecTracer, inTracer, logger]));
graphTracer.set(G);
oecTracer.set(outgoingEdgeCounts);
for (incomingNodes = []; incomingNodes.length < G.length; incomingNodes.push(filledArray(G.length, -1))) ;
inTracer.set(incomingNodes);
Tracer.delay();
// }
/*
PageRank Algorithm Version 2
Equation: