UNPKG

js-sorts

Version:

js sort

7 lines 3.74 kB
/* * @Author: saqqdy * @Date: 2018-08-18 20:35:04 * @Last Modified by: saqqdy.com * @Last Modified time: 2018-08-18 20: 35: 04 */ "use strict";function bubbleSort(r){for(var t=r.length,n=0;n<t;n++)for(var o=0;o<t-1-n;o++)if(r[o]>r[o+1]){var a=r[o+1];r[o+1]=r[o],r[o]=a}return r}function bubbleSort2(r){for(var t=arr.length-1;t>0;){for(var n=0,o=0;o<t;o++)if(arr[o]>arr[o+1]){n=o;var a=arr[o];arr[o]=arr[o+1],arr[o+1]=a}t=n}return r}function bubbleSort3(r){for(var t,n,o=0,a=r.length-1;o<a;){for(n=o;n<a;++n)r[n]>r[n+1]&&(t=r[n],r[n]=r[n+1],r[n+1]=t);for(--a,n=a;n>o;--n)r[n]<r[n-1]&&(t=r[n],r[n]=r[n-1],r[n-1]=t);++o}return r}function bucketSort(r,t){if(r.length<=1)return r;var n,o=r.length,a=[],e=[],f=max=r[0],i="/^[1-9]+[0-9]*$/",u=0;t=t||(t>1&&i.test(t)?t:10);for(var l=1;l<o;l++)f=f<=r[l]?f:r[l],max=max>=r[l]?max:r[l];n=(max-f+1)/t;for(var h=0;h<o;h++){var c=Math.floor((r[h]-f)/n);if(a[c]){for(var v=a[c].length-1;v>=0&&a[c][v]>r[h];)a[c][v+1]=a[c][v],v--;a[c][v+1]=r[h]}else a[c]=[],a[c].push(r[h])}for(;u<t;)e=e.concat(a[u]),u++;return e}function countingSort(r){for(var t=r.length,n=[],o=[],a=max=r[0],e=0;e<t;e++)a=a<=r[e]?a:r[e],max=max>=r[e]?max:r[e],o[r[e]]=o[r[e]]?o[r[e]]+1:1;for(var f=a;f<max;f++)o[f+1]=(o[f+1]||0)+(o[f]||0);for(var i=t-1;i>=0;i--)n[o[r[i]]-1]=r[i],o[r[i]]--;return n}function heapSort(r){if("Array"===Object.prototype.toString.call(r).slice(8,-1)){for(var t,n=r.length,o=Math.floor(n/2)-1;o>=0;o--)heapify(r,o,n);for(var a=n-1;a>=1;a--)t=r[0],r[0]=r[a],r[a]=t,heapify(r,0,--n);return r}return"array is not an Array!"}function heapify(r,t,n){if("Array"!==Object.prototype.toString.call(r).slice(8,-1)||"number"!=typeof t)return"arr is not an Array or x is not a number!";var o,a=2*t+1,e=2*t+2,f=t;a<n&&r[a]>r[f]&&(f=a),e<n&&r[e]>r[f]&&(f=e),f!=t&&(o=r[t],r[t]=r[f],r[f]=o,heapify(r,f,n))}function insertionSort(r){if("Array"===Object.prototype.toString.call(r).slice(8,-1)){for(var t=1;t<r.length;t++){for(var n=r[t],o=t-1;o>=0&&r[o]>n;)r[o+1]=r[o],o--;r[o+1]=n}return r}return"array is not an Array!"}function binaryInsertionSort(r){if("Array"===Object.prototype.toString.call(r).slice(8,-1)){for(var t=1;t<r.length;t++){for(var n=r[t],o=0,a=t-1;o<=a;){var e=parseInt((o+a)/2);n<r[e]?a=e-1:o=e+1}for(var f=t-1;f>=o;f--)r[f+1]=r[f];r[o]=n}return r}return"array is not an Array!"}function mergeSort(r){var t=r.length;if(t<2)return r;var n=Math.floor(t/2),o=r.slice(0,n),a=r.slice(n);return merge(mergeSort(o),mergeSort(a))}function merge(r,t){for(var n=[];r.length&&t.length;)r[0]<=t[0]?n.push(r.shift()):n.push(t.shift());for(;r.length;)n.push(r.shift());for(;t.length;)n.push(t.shift());return n}function quickSort(r,t,n){if("Array"===Object.prototype.toString.call(r).slice(8,-1)&&"number"==typeof t&&"number"==typeof n){if(t<n){for(var o,a=r[n],e=t-1,f=t;f<=n;f++)r[f]<=a&&(e++,o=r[e],r[e]=r[f],r[f]=o);quickSort(r,t,e-1),quickSort(r,e+1,n)}return r}return"array is not an Array or left or right is not a number!"}function radixSort(r,t){for(var n=10,o=1,a=[],e=0;e<t;e++,o*=10,n*=10){for(var f=0;f<r.length;f++){var i=parseInt(r[f]%n/o);null==a[i]&&(a[i]=[]),a[i].push(r[f])}for(var u=0,f=0;f<a.length;f++){var l=null;if(null!=a[f])for(;null!=(l=a[f].shift());)r[u++]=l}}return r}function selectionSort(r){for(var t,n,o=r.length,a=0;a<o-1;a++){t=a;for(var e=a+1;e<o;e++)r[e]<r[t]&&(t=e);n=r[a],r[a]=r[t],r[t]=n}return r}function shellSort(r){for(var t,n=r.length,o=1;o<n/5;)o=5*o+1;for(o;o>0;o=Math.floor(o/5))for(var a=o;a<n;a++){t=r[a];for(var e=a-o;e>=0&&r[e]>t;e-=o)r[e+o]=r[e];r[e+o]=t}return r}var quickSort2=function r(t){if(t.length<=1)return t;for(var n=Math.floor(t.length/2),o=t.splice(n,1)[0],a=[],e=[],f=0;f<t.length;f++)t[f]<o?a.push(t[f]):e.push(t[f]);return r(a).concat([o],r(e))};