diff --git a/hw1.htm b/hw1.htm new file mode 100644 index 0000000..f84a21a --- /dev/null +++ b/hw1.htm @@ -0,0 +1,13 @@ + + + + + HomeWork + + + +
+ + + + \ No newline at end of file diff --git a/hw1.js b/hw1.js new file mode 100644 index 0000000..2d44d3b --- /dev/null +++ b/hw1.js @@ -0,0 +1,59 @@ +function merge(array, leftBorder, split, rightBorder) { + "use strict"; + var MAX = 100000, + position1 = split - leftBorder + 1, + position2 = rightBorder - split, + tempArr1 = [], + tempArr2 = [], + i, + j, + k; + tempArr1.length = position1 + 1; + tempArr2.length = position2 + 1; + tempArr1[position1] = MAX; + tempArr2[position2] = MAX; + for (i = 0; i < position1; i = i + 1) { + tempArr1[i] = array[leftBorder + i]; + } + for (i = 0; i < position2; i = i + 1) { + tempArr2[i] = array[split + i + 1]; + } + i = 0; + j = 0; + for (k = leftBorder; k <= rightBorder; k = k + 1) { + if (tempArr1[i] <= tempArr2[j]) { + array[k] = tempArr1[i]; + i = i + 1; + } else { + array[k] = tempArr2[j]; + j = j + 1; + } + } +} + +function mergeSort(array, leftBorder, rightBorder) { + "use strict"; + if (leftBorder < rightBorder) { + var split = Math.floor((leftBorder + rightBorder) / 2); + mergeSort(array, leftBorder, split); + mergeSort(array, split + 1, rightBorder); + merge(array, leftBorder, split, rightBorder); + } +} + +function draw(array) { + "use strict"; + console.log(array); +} + +function main(myArg) { + "use strict"; + draw(myArg); + var array = myArg.split(','), + i = 0; + for (i; i < array.length; i = i + 1) { + array[i] = parseInt(array[i], 10); + } + mergeSort(array, 0, array.length - 1); + draw(array); +} \ No newline at end of file