3 - Algorithms & Efficiency

How many ways can you sort a complete mess of numbers? Is there one fastest method? In this unit we will code and compare some common sorting algorithms and then dive further into algorithm design in Unit 4.

Insertion Sort DemoSwfung8 / CC BY-SA

3.0 - Library of Functions

The library.js file you have been using for round() and randInt() has been updated.

Brief Description:

Returns a random integer where min and max are included.
Returns a rounded version of 'number' to the given 'precision' of decimals (>= 0).
Returns a random whole number where 'numOfDigits' controls the number of digits in the number (> 0). Note:ย  No leading zeros. 487 is not 0487 or 000487. numOfDigits is exact.
Returns a random Latin letter character either from A to Z (if 'upperCase' is true) or a to z (if 'upperCase' is false). upperCase will default to true.
Returns a random string of maximum length 'maxLength' (> 0). The string is made up of alpha letters A-Z and/or a-z. 'letterCase' can be 0 for all uppercase, 1 for all lowercase, and 2 for a mIX Of CaSEs. See the hints section for help on this. letterCase will default to zero (mixed).
Returns an array of size 'length' where each element is a random integer from min to max, inclusively.ย 
Returns an array (of length 'length') containing random strings, each of length 1 to maximum ย 'maxStrLength'. 'letterCase' can be 0 for all uppercase, 1 for all lowercase, and 2 for a mix of cases. See the hints section for help on this.
Returns an array (of length 'length') containing random strings or numbers. Strings are of length 1 to maximum ย 'maxStrLength'. 'letterCase' can be 0 for all uppercase, 1 for all lowercase, and 2 for a mix of cases. Numbers are any random integer from min to max, inclusive.

Reminder: Arrays in JS are passed & copied by reference

What does this mean - by reference?

It means that when you try to make a copy or pass an array into a function, it does not actually duplicate every item in the array to create separate arrays. It makes a link or shortcut to the array.

Example

let origSheeps = ['๐Ÿ‘', '๐Ÿ‘'];
let sheeps2 = origSheeps;

sheeps2.push('๐Ÿบ');

console.log(sheeps2);
ย  ย  // [ '๐Ÿ‘', '๐Ÿ‘', '๐Ÿบ' ]

console.log(origSheeps);
ย  ย  // [ '๐Ÿ‘', '๐Ÿ‘', '๐Ÿบ' ]

๐Ÿ˜ฑ , our original sheeps have changed?!

(source)

3.1 - Insertion Sort

3.1 - Hints

ย ย ย ย (shaker visualization video)

3.2 - Hints

3.3 - Hints

Useful Links