All about DataSince, DataEngineering and ComputerScience
View the Project on GitHub datainsightat/DataScience_Examples
Data Structures + Algorithms = Programs
Characterise code in terms of runtime and memory requirements.

Iterating through half the operations is still O(n)
Two separate collections: O(a * b)
function funChallenge(input) {
  let a = 10; //O(1)
  a = 50 + 3; //O(1)
  
  for (le ti = 0; i < input.length; i++) { //O(n)
    anotherFunction(); //O(n)
    let stranger = true; //O(n)
    a++; //O(n)
  }
  return a; //O(1)
}
funCallenge(); //O(3*1 + 4*n) = O(n)
function anotherFunChallenge(input) {
  let a = 5; //O(1)
  let b = 10; //O(1)
  let c = 50; //O(1)
  for (let i = 0; i < input; i++) {
     let x = i + 1; //O(n)
     let y = i + 2; //O(n)
     let z = i + 3; //O(n)
  }
  for (let j = 0; j < input; j++) {
     let p = j * 2; //O(n)
     let q = j * 2; //O(n)
  }
  let WhoAmI = 'I don't know"; //O(1)
}
anotherFunChallenge(); //O(4*1 + 3*n + 2*n) = O(n)
function compressBoxesTwice(boxes1, boxes2) {
  boxes.forEach(function(boxes)) {
     console.log(boxes);
  }
  boxes.forEach(function(boxes)) {
     console.log(boxes);
  }
}
compressBoxesTwice() //O(a + b)
function compressBoxesTwice(boxes1, boxes2) {
  boxes.forEach(function(boxes)) {
     console.log(boxes);
     boxes.forEach(function(boxes)) {
        console.log(boxes);
     }
  }
}
compressBoxesTwice() //O(a * b)
function booo(n) {
  for (let i = 0; i < n.length; i++) {
    console.log('booo');
  }
}
booo([1,2,3,4]) // O(1)
function arrayOfHinNTimes(n) {
  let hiArray = [];
  for (let i = 0; i < n; i++) {
    hiArray[i] = 'hi';
  }
  return hiArray;
}
arrayOfHinNTimes(6); // O(n)
//Find 1st, Find Nth...
const array = ['hi','my','teddy'];
array[0]; //O(1)
array[array.length - 1]; //O(1)
//Find 1st, Find Nth...
const array = [{
  tweet: 'hi',
  date: 2012
  }, {
  tweet: 'my',
  date: 2014
  }, {
  tweet: 'teddy',
  date: 2018
  }]; //O(n^2) ... Nested Loop