diff --git a/algorithm/sorting/merge/basic/code.js b/algorithm/sorting/merge/basic/code.js index d3d0a175..84ee70f5 100644 --- a/algorithm/sorting/merge/basic/code.js +++ b/algorithm/sorting/merge/basic/code.js @@ -3,74 +3,66 @@ tracer._sleep(1000); tracer._pace(500); function mergeSort(start, end) { - if (Math.abs(end - start) <= 1) { - return []; - } - + if (Math.abs(end - start) <= 1) return []; var middle = Math.ceil((start + end) / 2); mergeSort(start, middle); mergeSort(middle, end); - - tracer._print('divide left[' + start + ', ' + (middle-1) + '], right[' + (middle) + ', ' + (end-1) + ']'); + tracer._print('divide left[' + start + ', ' + (middle - 1) + '], right[' + (middle) + ', ' + (end - 1) + ']'); return mergeSort.merge(start, middle, end); } -mergeSort.merge = function (start, middle, end) { - var left = Array(); - var right = Array(); - - var leftSize = middle - start; - var rightSize = end - middle; - var maxSize = Math.max(leftSize, rightSize); - var size = end - start; +mergeSort.merge = function(start, middle, end) { + const leftSize = middle - start; + const rightSize = end - middle; + const maxSize = Math.max(leftSize, rightSize); + const size = end - start; + var left = []; + var right = []; var i; for (i = 0; i < maxSize; i++) { - if (i < leftSize) { - left.push(D[start + i]); - tracer._select(start + i); - tracer._print('insert value into left array[' + i +'] = ' + D[start + i]); - } - if (i < rightSize) { - right.push(D[middle + i]); - tracer._select(middle + i); - tracer._print('insert value into right array[' + i +'] = ' + D[middle + i]); - } + if (i < leftSize) { + left.push(D[start + i]); + tracer._select(start + i); + tracer._print('insert value into left array[' + i + '] = ' + D[start + i]); + } + if (i < rightSize) { + right.push(D[middle + i]); + tracer._select(middle + i); + tracer._print('insert value into right array[' + i + '] = ' + D[middle + i]); + } } tracer._print('left array = [' + left.join(', ') + '],' + 'right array = [' + right.join(', ') + ']'); - + i = 0; while (i < size) { - if (left[0] && right[0]) { - if (left[0] > right[0]) { - D[start + i] = right.shift(); - tracer._print('rewrite from right array[' + i + '] = ' + D[start+i]); + if (left[0] && right[0]) { + if (left[0] > right[0]) { + D[start + i] = right.shift(); + tracer._print('rewrite from right array[' + i + '] = ' + D[start + i]); + } else { + D[start + i] = left.shift(); + tracer._print('rewrite from left array[' + i + '] = ' + D[start + i]); + } + } else if (left[0]) { + D[start + i] = left.shift(); + tracer._print('rewrite from left array[' + i + '] = ' + D[start + i]); } else { - D[start + i] = left.shift(); - tracer._print('rewrite from left array[' + i + '] = ' + D[start+i]); + D[start + i] = right.shift(); + tracer._print('rewrite from right array[' + i + '] = ' + D[start + i]); } - } else if (left[0]) { - D[start + i] = left.shift(); - tracer._print('rewrite from left array[' + i + '] = ' + D[start+i]); - } else { - D[start + i] = right.shift(); - tracer._print('rewrite from right array[' + i + '] = ' + D[start+i]); - } - - tracer._deselect(start + i); - tracer._notify(start + i); - - i++; - } - - tempArray = Array(); - for (i=start; i pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy