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 =...