You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							51 lines
						
					
					
						
							814 B
						
					
					
				
			
		
		
	
	
							51 lines
						
					
					
						
							814 B
						
					
					
				/**
 | 
						|
 * Mnemonist Insertion Sort
 | 
						|
 * =========================
 | 
						|
 *
 | 
						|
 * Insertion sort related functions.
 | 
						|
 */
 | 
						|
function inplaceInsertionSort(array, lo, hi) {
 | 
						|
  i = lo + 1;
 | 
						|
 | 
						|
  var j, k;
 | 
						|
 | 
						|
  for (; i < hi; i++) {
 | 
						|
    k = array[i];
 | 
						|
    j = i - 1;
 | 
						|
 | 
						|
    while (j >= lo && array[j] > k) {
 | 
						|
      array[j + 1] = array[j];
 | 
						|
      j--;
 | 
						|
    }
 | 
						|
 | 
						|
    array[j + 1] = k;
 | 
						|
  }
 | 
						|
 | 
						|
  return array;
 | 
						|
}
 | 
						|
 | 
						|
exports.inplaceInsertionSort = inplaceInsertionSort;
 | 
						|
 | 
						|
function inplaceInsertionSortIndices(array, indices, lo, hi) {
 | 
						|
  i = lo + 1;
 | 
						|
 | 
						|
  var j, k, t;
 | 
						|
 | 
						|
  for (; i < hi; i++) {
 | 
						|
    t = indices[i];
 | 
						|
    k = array[t];
 | 
						|
    j = i - 1;
 | 
						|
 | 
						|
    while (j >= lo && array[indices[j]] > k) {
 | 
						|
      indices[j + 1] = indices[j];
 | 
						|
      j--;
 | 
						|
    }
 | 
						|
 | 
						|
    indices[j + 1] = t;
 | 
						|
  }
 | 
						|
 | 
						|
  return indices;
 | 
						|
}
 | 
						|
 | 
						|
exports.inplaceInsertionSortIndices = inplaceInsertionSortIndices;
 |