From 94fc9bd3dd22eadb13b043e080f03c3f3a7196d7 Mon Sep 17 00:00:00 2001 From: vaRinia Date: Fri, 12 May 2017 13:30:20 -0500 Subject: [PATCH] binary, linear, counting, merge --- .../busqueda/Binary Search-vaRinia.js | 28 ++++++++++++++++ .../busqueda/Linear Search-vaRinia.js | 9 ++++++ .../ordenamiento/Counting Sort-vaRinia.js | 27 ++++++++++++++++ .../ordenamiento/Merge Sort-vaRinia.js | 32 +++++++++++++++++++ 4 files changed, 96 insertions(+) create mode 100644 src/common/algorithms/busqueda/Binary Search-vaRinia.js create mode 100644 src/common/algorithms/busqueda/Linear Search-vaRinia.js create mode 100644 src/common/algorithms/ordenamiento/Counting Sort-vaRinia.js create mode 100644 src/common/algorithms/ordenamiento/Merge Sort-vaRinia.js diff --git a/src/common/algorithms/busqueda/Binary Search-vaRinia.js b/src/common/algorithms/busqueda/Binary Search-vaRinia.js new file mode 100644 index 0000000..fa7f056 --- /dev/null +++ b/src/common/algorithms/busqueda/Binary Search-vaRinia.js @@ -0,0 +1,28 @@ +function binarySearch(inputArray, t) { + var p = inputArray[parseInt(inputArray.length/2)]; + var index = inputArray.indexOf(p); + if (t < p) { + var i = 0; + while (i < index) { + if(t === (inputArray[i])) { + return i; + } else if (t != (inputArray[i])) { + i++; + } + } + return false; + } else { + while (index < (inputArray.length)) { + if(t === (inputArray[index])) { + return index; + } else if (t != (inputArray[index])) { + index++; + } + } + return false; + } +} + + +var l = [1, 2, 3, 5, 5, 6, 7, 8, 9, 30, 301]; +binarySearch(l, 2); diff --git a/src/common/algorithms/busqueda/Linear Search-vaRinia.js b/src/common/algorithms/busqueda/Linear Search-vaRinia.js new file mode 100644 index 0000000..4df86d4 --- /dev/null +++ b/src/common/algorithms/busqueda/Linear Search-vaRinia.js @@ -0,0 +1,9 @@ +function linearSearch(inputArray, t) { + for (i = 0; inputArray[i] != t; i++) { + + } + return i; +} + +var l = [1, 2, 3, 15, 5, 6, 7, 8, 9, 30, 301]; +linearSearch(l, 301); diff --git a/src/common/algorithms/ordenamiento/Counting Sort-vaRinia.js b/src/common/algorithms/ordenamiento/Counting Sort-vaRinia.js new file mode 100644 index 0000000..e3df5ae --- /dev/null +++ b/src/common/algorithms/ordenamiento/Counting Sort-vaRinia.js @@ -0,0 +1,27 @@ +function countingSort(inputArray, maxVal) { + var containers = []; + var sortedArray = []; + var k = 0; + var l = 0; + for (j = 0; j < maxVal+1; j++){ + containers[j] = 0; + } + for(i = 0; i < inputArray.length; i++) { + containers[(inputArray[i])] = (containers[inputArray[i]]) + 1; + } + //console.log("Conteo de elementos: " + containers); + while (l < inputArray.length) { + if(containers[k] === 0) { + k++; + } else { + sortedArray[l] = k; + containers[k] = containers[k] - 1; + l++; + } + } + return sortedArray; +} + +var a = [9 ,11, 4, 5, 5, 3, 2, 4, 4, 4, 9, 10, 11, 10, 1]; + +countingSort(a, 11); diff --git a/src/common/algorithms/ordenamiento/Merge Sort-vaRinia.js b/src/common/algorithms/ordenamiento/Merge Sort-vaRinia.js new file mode 100644 index 0000000..8037038 --- /dev/null +++ b/src/common/algorithms/ordenamiento/Merge Sort-vaRinia.js @@ -0,0 +1,32 @@ +function mergeSort(array1, array2) { + var len = array1.length + array2.length; + len = len; + var array3 = new Array(len); + for(i = 0; i <= len; i++) { + if (array1.length === 0) { + while (array2.length > 0) { + array3[i] = array2[0]; + array2.shift(); + i++; + } + } else if (array2.length === 0) { + while (array1.length > 0) { + array3[i] = array1[0]; + array1.shift(); + i++; + } + } else if(array1[0] < array2[0]) { + array3[i] = array1[0]; + array1.shift(); + } else { + array3[i] = array2[0]; + array2.shift(); + } + } + return array3; +} + +var l = [1, 5, 8, 12, 35, 40, 50, 60, 300, 301]; +var r = [0, 3, 10, 15, 20, 21, 22, 51, 500, 600, 700]; + +mergeSort(l,r);