function selection_sort(A) {
  const n = A.length - 1;
  for (let i = n; i >= 2; i--) {
    let k = 1;
    for (let j = 2; j <= i; j++) {
      console.log(`COMPARE A[j(${j})]->${A[j]} with A[k(${k})]->${A[k]}`);
      if (A[j] > A[k]) {
        k = j;
      }
    }
    console.log(`SWAP A[k(${k})]->${A[k]} with A[i(${i})]->${A[i]}`);
    console.log(A);
    const t = A[k];
    A[k] = A[i];
    A[i] = t;
    console.log(A);
    console.log('---');
  }
}

// Insert NULL at index 0 because CMSC 351 code INDEX stars from 1
const arr = [null, 64, 25, 12, 22, 11];
selection_sort(arr);
console.log(arr);

// RIGHT SIDE IS SORTED PART
// [64, 25, 12, 22, 11|]
// [11, 25, 12, 22, |64]
// [11, 22, 12, |25, 64]
// [11, 12, |22, 25, 64]
// [11, |12, 22, 25, 64]