UNPKG

npm-sorting

Version:

some small lib to help you sorting problem, i have bubblesort, selectionsort, and mergesort

63 lines (59 loc) 1.23 kB
function bubbleSort(arr){ var len = arr.length; for (var i = len-1; i>=0; i--){ for(var j = 1; j<=i; j++){ if(arr[j-1]>arr[j]){ var temp = arr[j-1]; arr[j-1] = arr[j]; arr[j] = temp; } } } return arr; } function selectionSort(arr){ var minIdx, temp, len = arr.length; for(var i = 0; i < len; i++){ minIdx = i; for(var j = i+1; j<len; j++){ if(arr[j]<arr[minIdx]){ minIdx = j; } } temp = arr[i]; arr[i] = arr[minIdx]; arr[minIdx] = temp; } return arr; } function mergeSort(arr){ var len = arr.length; if(len <2) return arr; var mid = Math.floor(len/2), left = arr.slice(0,mid), right =arr.slice(mid); return merge(mergeSort(left),mergeSort(right)); } function merge(left, right){ var result = [], lLen = left.length, rLen = right.length, l = 0, r = 0; while(l < lLen && r < rLen){ if(left[l] < right[r]){ result.push(left[l++]); } else{ result.push(right[r++]); } } return result.concat(left.slice(l)).concat(right.slice(r)); } module.exports = { bubbleSort, selectionSort, mergeSort };