List of utility methods to do Array Insertion Sort
insertionSort()"use strict"; Array.prototype.insertionSort = function() { for (var key = 1; key < this.length; key++) { for (var swap_key = key; this[swap_key] < this[swap_key - 1]; swap_key--) { var temp = this[swap_key]; this[swap_key] = this[swap_key - 1]; this[swap_key - 1] = temp; }; var assert = function(expression, name) { if ( ! expression) { console.log('** Assertion failed', name || '') var a1 = [5,4,3,6,7,1,2,8,9]; a1.insertionSort(); console.log(a1); assert(a1.toString() === [1,2,3,4,5,6,7,8,9].toString(), 'Test it is sorted'); | |
insertionSort()Array.prototype.insertionSort = function () { for (var i = 1; i < this.length; i++) { var j = i, value = this[i]; while(j > 0 && value < this[j-1]){ this[j] = this[j-1]; j--; this[j] = value; }; | |
insertionSort(desc)Array.prototype.insertionSort = function(desc) { let A = Object.assign([], this) for(let j = 1; j < A.length; j++) { let key = A[j] let i = j - 1 while(i >= 0 && (desc ? A[i] < key : A[i] > key)) { A[i + 1] = A[i] i = i - 1 A[i + 1] = key return A let arr = [3, 8, 1, 6, 5, 4, 9, 2, 7] let ascending = arr.insertionSort() let descending = arr.insertionSort(true) Array.prototype.selectionSort = function(desc) { let A = Object.assign([], this) for(let j = 0; j < A.length; j++) { let key = A[j] let m = j for(let i = j; i < A.length; i++) { m = (desc ? A[i] > A[m] : A[i] < A[m]) ? i : m A[j] = A[m] A[m] = key return A let arr = [3, 8, 1, 6, 5, 4, 9, 2, 7] let ascending = arr.selectionSort() let descending = arr.selectionSort(true) | |
insertionSort (array)Array.prototype.sort = function(){ console.log("Please don't use the built in sort function.") function insertionSort (array) { let current, i, j; for (i in array) { current = array[i]; for (j=i-1; j>-1 && (array[j] > current); j--) { array[j+1] = array[j]; ... | |
insertion_sort(array)'use strict'; Array.prototype.swap = function swap (a, b) { const temp = this[a]; this[a] = this[b]; this[b] = temp; }; function insertion_sort (arr) { for (let i = 0; i < arr.length; i++) { let j = i; ... |