Merge Sort Implementation principle: Combine a series of ordered sub-sequences into a large complete ordered sequence . Merging sorting in recursive algorithms is a typical example, and the following is a merge sort algorithm implemented using javascript:
<! DOCTYPE html>varMerge =function(unsorted, First, mid, last, sorted) {vari = First, j =mid; varK = 0; while(I < mid && J <Last ) { if(Unsorted[i] <Unsorted[j]) sorted[k+ +] = unsorted[i++]; Elsesorted[k+ +] = unsorted[j++]; } while(I <mid) {Sorted[k+ +] = unsorted[i++]; } while(J <Last ) {Sorted[k+ +] = unsorted[j++]; } for(varv = 0; v < K; v++) {Unsorted[first+ v] = sorted[v];//copied to the original array } }; varMerge_sort =function(unsorted, first, last, sorted) {if(First + 1 <Last ) { varMID = Math.floor (first + last)/2); Merge_sort (unsorted, first, Mid, sorted); Merge_sort (unsorted, Mid, last, sorted); Merge (unsorted, first, mid, last, sorted); } };//var nums = [6,10,1,9,4,8,2,7,3,5]; varNums = [6,2,8,3]; varsorted = []; Console.log ("Merge before \ n"); Console.log (Nums.tostring ()); Console.log ("Merge after \ n"); Merge_sort (Nums,0, nums.length, sorted); Console.log (Nums.tostring ()); </script></body>Reference: http://www.cnblogs.com/jillzhang/archive/2007/09/16/894936.html
Recursive algorithm (merge sort)