Testing Sort
by LyndseyB
Babel + JSX
const Arrays = (() => {
const letters = 'abcdefghijklmnopqrstuvwxyz';
function randomNumber(max) {
return Math.floor(Math.random() * max);
}
function createIntArray(counter) {
let i = 0;
let arr = [];
while(i < counter) {
arr.push(Math.floor(Math.random() * 10000));
i++;
}
return arr;
}
function createStrArray(counter) {
let i = 0;
let arr = [];
while(i < counter) {
let randomSize = randomNumber(letters.length);
let size = 0;
let str = '';
while(size < randomSize) {
str+= letters[randomNumber(letters.length)];
size++;
}
arr.push(str);
i++;
}
return arr;
}
return {
getRandomArray(options) {
const defaults = {
type: 'number',
count: 1000
};
const settings = Object.assign(defaults, options);
switch(settings.type) {
case 'number':
return createIntArray(settings.count);
case 'string':
return createStrArray(settings.count);
default:
return [];
}
},
bubbleSort(_arr, type = 'int') {
let arr = _arr.slice();
let len = arr.length;
let counter = 0;
let output = [];
for(let i = 0; i < len; i++) {
// len-1 because we don't want to go outside array boundary
for(counter; counter < len - 1 - i; counter++) {
let cur = arr[counter];
let next = arr[counter + 1];
let swap = false;
switch(type) {
case 'int':
swap = cur > next;
break;
case 'string':
swap = cur.length > next.length;
}
if(swap) {
arr[counter] = next;
arr[counter + 1] = cur;
}
}
counter = 0;
}
return arr;
}
};
})();
console.time('array-gen');
const n =...