Thread: MergeSort
View Single Post
  #4 (permalink)  
Old 04-03-2010, 12:46 AM
Shadow703793 Shadow703793 is offline
Junior Member
 

Join Date: Feb 2010
Posts: 10
Thanks: 3
Thanked 0 Times in 0 Posts
Shadow703793 is on a distinguished road

I'm feeling Cheerful
Default Re: MergeSort

Hey m8, you may find the Mergesort I have here: Quick Question about Mergesort useful as a reference. It works for the numbers I have tried.

You may also find this psudocode useful:
Java Code
function mergesort(m)
   var list left, right, result
   if length(m) ≤ 1
       return m
   else
       var middle = length(m) / 2
       for each x in m up to middle - 1
           add x to left
       for each x in m at and after middle
           add x to right
       left = mergesort(left)
       right = mergesort(right)
       if last(left) ≤ first(right) 
          append right to left
          return left
       result = merge(left, right)
       return result

function merge(left,right)
   var list result
   while length(left) > 0 and length(right) > 0
       if first(left) ≤ first(right)
           append first(left) to result
           left = rest(left)
       else
           append first(right) to result
           right = rest(right)
   if length(left) > 0 
       append rest(left) to result
   if length(right) > 0 
       append rest(right) to result
   return result
Source: http://rosettacode.org/wiki/Sorting_...hms/Merge_sort

Last edited by Shadow703793; 04-03-2010 at 12:52 AM.
Reply With Quote