O(n2)

For the O(n2) example, let's use the bubble sort algorithm:

function bubbleSort(array, compareFn = defaultCompare) {  const { length } = array;  for (let i = 0; i < length; i++) { // {1}     for (let j = 0; j < length - 1; j++) { // {2}       if (compareFn(array[j], array[j + 1]) === Compare.BIGGER_THAN) {        swap(array, j, j + 1);      }    }  }  return array;}

Consider that lines {1} and {2} have a cost of 1 each. Let's modify the algorithm to calculate the cost as follows:

function bubbleSort(array, compareFn = defaultCompare) {  const { length } = array;  let cost = 0;  for (let i = 0; i < length; i++) { // {1}    cost++;    for (let j = 0; j < length - 1; j++) { // {2}      cost++;      if (compareFn(array[j], array[j + 1]) === Compare.BIGGER_THAN) { swap(array, j, j + ...

Get Learning JavaScript Data Structures and Algorithms - Third Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.